2016-10-04 15 views
1

私は通常、特注のCMSシステムを使用するのに慣れていて、つまずくブロックにぶつかったより少し複雑なウェブサイトを設定しています。次のようなURLがきれいになるようMod_rewrite - .htaccess内の複数のルール

基本的に私が達成したいと思っています、何が簡単なトップレベルのページ構造である:通常

http://www.mywebsite.com/page.php?page_url=val1

http://www.mywebsite.com/val1

問題ありませんが、既存の.htaccess既にいくつかのRewriteRulesが存在し、RewriteRuleを追加するバリエーションは競合し、選択ページが機能しないようにします。

しようとしたバリエーションの周りに...ない喜びで

RewriteCond %{QUERY_STRING} ^page=(.+) 
RewriteRule ^$ /%1? [R=301,L] 

私の戦略を再考する必要があるのですか、それとも単に見落としているものがありますか?

は、私が「market.php」トップレベル・カテゴリページを作るに向けて再考するべき#に書き換え作業は、市場レベルが

私の既存の.htaccessを書き換え指定しない以下のようで、徹底した後、正常に動作します新しい最上位ページを含むように変更するとエラーになります。

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
# Force search engines to use www 
RewriteCond %{HTTP_HOST} !^www\.mywebsite\.com$ 
RewriteRule ^(.*) http://www.mywebsite.com/$1 [R=301,L] 
# Specify MARKET LEVEL rewrite 
RewriteRule ^top-level-category-1$ /market.php?p=top-level-category-1 [L] 
RewriteRule ^top-level-category-2$ /market.php?p=top-level-category-2 [L] 
RewriteRule ^top-level-category-3$ /market.php?p=top-level-category-3 [L] 
RewriteRule ^top-level-category-4$ /market.php?p=top-level-category-4 [L] 
RewriteRule ^top-level-category-5$ /market.php?p=top-level-category-5 [L] 
RewriteRule ^top-level-category-6$ /market.php?p=top-level-category-6 [L] 
Options +FollowSymLinks 
# Specify OFFER LEVEL rewrite 
RewriteRule offer/(.*)/ offer.php?p=$1 
RewriteRule offer/(.*) offer.php?p=$1 
# Specify CLAIM OFFER LEVEL rewrite 
RewriteRule get-offer/(.*)/ reveal.php?claim=$1 
RewriteRule get-offer/(.*) reveal.php?claim=$1 
# Specify CLAIM EVENT LEVEL rewrite 
RewriteRule event-bonus/(.*)/ reveal-event.php?claim=$1 
RewriteRule event-bonus/(.*) reveal-event.php?claim=$1 
# Specify SEARCH LEVEL rewrite 
RewriteRule search/(.*)/ search.php?p=$1 
RewriteRule search/(.*) search.php?p=$1 
# Specify EVENT LEVEL rewrite 
RewriteRule offers/(.*)/ offers.php?p=$1 
RewriteRule offers/(.*) offers.php?p=$1 
# Specify BLOG LEVEL rewrite 
RewriteRule blog/(.*)/ blog.php?p=$1 
RewriteRule blog/(.*) blog.php?p=$1 
RewriteRule view-blog/(.*)/ view-blog.php?p=$1 
RewriteRule view-blog/(.*) view-blog.php?p=$1 
# Specify EXPIRED OFFER LEVEL rewrite 
RewriteRule offer-expired/(.*)/ offer-expired.php?p=$1 
RewriteRule offer-expired/(.*) offer-expired.php?p=$1 

答えて

0

それはあなたの目的のURLを残す必要があり、あなたの.htaccess

RewriteEngine On 
RewriteRule ^([^/]*)$ /page.php?page_url=$1 [L] 

でこのRewriteRuleを使用してみてください。

+0

動作しません。既存の.htaccess内でテストし、ページがロードされない – Lee

+0

@あなたが言ったように適切な.htaccessがあるので、thickguruが動作するはずはありません。もしそうでなければ、それを上書きするか、このルールを無視するあなたの既存のhtaceesで問題になるはずです。 htaccessファイルの上に彼が言ったことを入れましたか? –

関連する問題