我有以下情况:
在我的网络服务器上,我有一个运行websvn的实例,其中特定的存储库和修订版可以通过URL访问,如
http://www.myhost.com/listing.php?repname=repository1&path=%2Ftrunk%2Fbackend
不知何故,在野外,正在使用错误的URL来访问此
http://www.myhost.com/listing.php/?repname=repository1&path=%2Ftrunk%2Fbackend
(注意list.php之后的斜线)
现在,尽管URL工作且websvn仍显示网页,但图像和样式表无法正确加载,因为它们是相对引用的。
我尝试将.htaccess文件添加到webroot,以将访问该文件的人员重定向到正确的URL。
我尝试了多种变体,最后得到了这个文件:
RewriteEngine on
RewriteRule ^/listing.php/ listing.php [R=301,QSA]
但是,既然我在这里写作,你已经猜到了:它不起作用。
我也试过
RewriteEngine on
RewriteRule ^/listing.php(.*) listing.php$1 [R=301,QSA]
我做错了什么?
答案 0 :(得分:1)
也许除其他事项外,RewriteRule
中以“.htaccess
”开头的^/
将永远不会匹配任何内容。 (包含前导斜杠的示例适用于全局配置文件。)删除前导斜杠并查看是否有帮助。
另外,我建议将301更改为307,直到它正常工作。否则,您的浏览器将缓存301结果,在不咨询您的服务器的情况下重定向后续引用,并且可能会给您带来非常混乱的结果。