0
基本上,我有这样的目录设置:.htaccess |打开文件不目录
/.htaccess
/home.php
/office.php
/office/tutorials.php
和.htaccess文件是这样的:
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
order deny,allow
# setup
DirectoryIndex /home.php
ErrorDocument 403 /err403.php
ErrorDocument 404 /err404.php
# remove trailing slash
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule^%1 [R=301,L]
# To internally forward /dir/file to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
现在下面发生的事情。 当我打电话给“www.domain.com/home”时,它完美地工作。 但是当我尝试打电话给“www.domain.com/office”时,我总是得到home.php页面而没有样式,它显示我在“www.domain.com/office/”,所以我猜名为office的目录。
我试着重命名办公室/目录,然后office.php文件再次完美工作,但我需要的目录命名为相同的文件,所以该URI看起来不错,干净,并建立在彼此像这个:
www.domain.com/office (own page)
www.domain.com/office/tutorials (own page)
在此先感谢!
太棒了!这解决了大部分问题,但是现在它在URI的末尾添加了一个斜杠,当存在一个同名的目录时... –
如果您希望将“删除尾部斜线”规则应用于目录,则从该规则中删除相同的RewriteCond。 –
我尝试过,但后来我得到一个重定向错误... –