这些是我正在使用的重写规则。在这一点上,我试图强制坏的url加载index.php。html标记<base href="/directory-name/" />
位于index.php的顶部,因此我的css、图像和其他资产正在正确加载。
Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteCond ${REQUEST_URI} ^.+$
RewriteCond %{REQUEST_FILENAME} '.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
RewriteRule ^(.*)/(.*)/(.*) /index.php?x=$1&y=$2&z=$3 [L]
RewriteRule ^(.*)/(.*) /index.php?x=$1&y=$2 [L]
RewriteRule ^(.*) /index.php?x=$1 [L]
Url示例:
www.domain.com/directory-name/
www.domain.com/directory-name/index.php
www.domain.com/directory-name/index.php/arg1/arg2/arg3
www.domain.com/directory-name/anything-here
www.domain.com/directory-name/anything-here/arg1/arg2/arg3
前3个url示例运行良好,并加载index.php
。但是第4个和第5个url失败,并将我转储回存在examplep索引的html root/。我假设上一次url重写失败是因为index.php位于根目录之外的子目录中?
我该怎么解决?即使路径中有其他内容,我该如何强制url加载www.domain.com/directory-name/index.php
?
试试这些规则:
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?x=$1&y=$2&z=$3 [L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?x=$1&y=$2 [L]
RewriteRule ^([^/]+)/?$ index.php?x=$1 [L]