0

例如,我有一些域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/or http://domain.com/sport/123/hello.html被访问时..它必须显示第一个文件夹 index.php 的内容,而不是抛出 not found 错误,也就是说,在这个例子中它必须显示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]
4

1 回答 1

1

如果您将所有重写规则包装在一个IfModule容器中,您是否仍然会收到 500 内部服务器错误?例如

<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文件。

于 2013-08-12T01:29:52.477 回答