0

サイトの構造を変更しており、古い URL は次のようになります。

http://www.website.co.uk/pages.php?PageId=7

新しい URL は次のとおりです。

http://www.website.co.uk/niceurl

そして、私が使用しているCMSに付属するこの.htaccessを持っているので、そのコア機能を別の方法で動作させることはできません.

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f

RewriteRule ^(.*)$ index.php/$1

</IfModule>

私が本当にやりたいことは、pages.php がリクエストされているかどうかを確認し、リクエストされている場合はルールを無視することです。

RewriteRule ^(.*)$ index.php/$1

次に、このルールの後に次のようにします。

RewriteRule ^PageId=7(.*)$ /niceurl [R=301] 

どんな助けでも大歓迎です。

4

1 に答える 1

0

ソリューション:

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f

RewriteCond %{QUERY_STRING} !(PageId=7)

RewriteRule ^(.*)$ index.php/$1

RewriteCond %{QUERY_STRING} PageId=7
RewriteRule .* /niceurl? [R=302,L]

</IfModule>
于 2012-04-19T16:35:25.490 に答える