我有一些域名,例如http://domain.com
http://domain.com/sport -> Folder actually exits
http://domain.com/sport/123/ - > Folder dont exist
http://domain.com/sport/123/hello.html - > file dont exist
所以当http://domain.com/sport/123/
或
http://domain.com/sport/123/hello.html
被访问了..而不是抛出未找到的错误,它必须显示第一个文件夹index.php的内容,在这个例子中它必须显示http://domain.com/sport/index.php
的内容
我尝试了下面的代码。但它会引发500内部错误
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/.*$ /$1/index.php [L]
答案 0 :(得分:1)
如果将所有重写规则包装在IfModule
容器中,是否仍会出现500内部服务器错误? E.G。
<IfModule mod_rewrite.c>
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/.*$ /$1/index.php [L]
</IfModule>
如果您停止收到错误,但重写仍然无效,则表示您必须打开重写模块。如何完成此操作完全取决于您的设置,托管服务设置和/或您是否有权访问httpd.conf
文件。