它是如何设置的
我有一个网站,这是设置为干净的url与Apache mod_rewrite是这样的:
RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L,QSA]
该网站还使用了一个名为Cockpit的CMS,它位于我的公共目录下,它的干净的URL包含一个类似的.htaccess文件:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L]
在这两种情况下RewriteEngine On也存在(当然)。
现在在Apache这导致我的网站的URL被重写这样的
http://domain.com/a http://domain.bom/b
和驾驶舱的url几乎一样:
http://domain.com/cockpit/a http://domain.com/cockpit/b
我正在调查所以我一直在考虑离开Apache的背后lighttpd,我已经搞乱了他们的mod_rewrite语法和configuration相当多,但我遇到了一个问题,驾驶舱url不完全清洁。 这是我如何在lighttpd上设置的:
$HTTP["host"] == "domain.com" { server.document-root = "/var/www/domain.com/public_html" index-file.names = ( "index.php" ) $HTTP["url"] =~ "^(\/cockpit)(\/[a-zA-Z0-9\.]*)*$" { url.rewrite-if-not-file = ( "^(.*)$" => "/cockpit/" ) } else $HTTP["url"] !~ "^(\/cockpit)(\/[a-zA-Z0-9\.]*)*$" { url.rewrite-if-not-file = ( "^(.*)$" => "/index.php" ) } }
这个configuration设置工作,但驾驶舱url现在是这些:
http://domain.com/cockpit/index.php/a http://domain.com/cockpit/index.php/b
我想摆脱url的index.php部分像Apache一样,但我一直无法得到这个工作正常。
任何人有关于此事的任何想法? 小号