对不起,我知道这里有一百万个mod_rewrite问题。我看了很多,并试图从别人的错误中吸取教训,但我不知道我在这里做错了什么。
我的网站曾经是http://example.com/andrew/qa。现在它在http://example.com/fdso。
我只想将所有/andrew/qa/(.*)
个网址重定向到/fdso/$1
。包括更改浏览器上的URL,我理解301选项负责:
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/andrew/qa/.* [NC]
RewriteRule ^/andrew/qa/(.*)$ /fdso/$1 [L,301]
</IfModule>
我在/andrew/qa/.htaccess的.htaccess文件中有这个。
我收到500内部服务器错误,无法找出原因。
我正在使用的服务器似乎不会因某些原因生成日志。 (日志目录丢失了。)我几乎无法控制此服务器,因为我没有root访问权限。
答案 0 :(得分:2)
此行导致500错误:
RewriteRule ^/andrew/qa/(.*)$ /fdso/$1 [L,301]
这是因为301
应为R=301
。
但是,您的规则仍然不会重定向,因为/
格式为/andrew/qa/
并且RewriteRule
模式中存在/andrew/qa/.htaccess
。
在RewriteEngine On
RewriteRule ^(.*)$ /fdso/$1 [L,NE,R=301]
:
RewriteCond
您也不需要多余TRUNCATE
。