我们正在更改网站'结构和旧网址看起来像:
http://www.website.co.uk/pages.php?PageId=7
新网址是:
http://www.website.co.uk/niceurl
我有这个.htaccess随我使用的CMS一起使用,因此它的核心功能无法以不同的方式工作。
<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]
任何帮助都将不胜感激。
答案 0 :(得分: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>