【发布时间】:2013-11-06 10:57:10
【问题描述】:
我正在尝试使用这样的 URL 结构:
www.mydomain.com/aaa/bbb/ccc
www.mydomain.com/aaa/ddd/eee
www.mydomain.com/aaa/fff/ggg
以上所有网址都应重定向到:www.mydomain.com/aaa.html
今天我在 .htaccess 中使用它:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} (.*)/$
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule (.*)/$ $1.html [L]
如果我尝试在浏览器中输入:www.mydomain.com/aaa/bbb/ccc,服务器将查找:www.mydomain.com/aaa.html/bbb/ccc 而不是 www.mydomain.com/ aaa.html
【问题讨论】:
-
RewriteRule ^/?aaa(.*)/?$ aaa.html [L] -
看起来这应该可行,但发生了一些奇怪的事情。如果文件 aaa.html 不存在,那么我的浏览器会告诉我:“在此服务器上找不到请求的 URL /aaa.html”。但是如果文件 aaa.html 存在,那么我会得到:“在此服务器上找不到请求的 URL /aaa.html/bbb/ccc。”
-
好的。这行得通。只要我不重定向到 aaa.html。然后我猜其他 RewriteCond “interreferes”。但我可以重定向到 aaa.shtml 或 aaa.php
标签: .htaccess