我需要 301 重定向一个目录及其包含的 rewitten URL:
/old-directory/any-url.html 301- 重定向到 /new-directory/any-url.html
和
/old-directory/ 301-重定向到 /new-directory/
在该目录(移动到 /new-directory)中,我有这个特定于目录的 .htaccess 以及我需要保留的以下规则:
RewriteEngine On
RewriteRule ^list\.html$ list.php [QSA]
RewriteRule ^(.*)\.html$ index.php?hash=$1 [QSA,L]
也许没有必要指定,但是在根目录上,我有这个根 .htaccess 与我不想干涉的规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([a-zA-Z0-9-]*)$ index.php?page=$1 [QSA,L]
我试图在根 .htaccess 中添加它:
RewriteRule ^old-directory$ /new-directory/ [R=301,NC,L]
RewriteRule ^old-directory/(.*)$ /new-directory/$1 [R=301,NC,L]
...但它不起作用(我收到 500 内部服务器错误)。你知道为什么吗?由于我在 .htaccess 测试站点上成功测试了此规则,我猜是因为它干扰了另一个 /new-directory/ 特定的 .htaccess ... 在这种情况下,将两个 .htaccess 合并为一个会更好吗?如何?