htaccess:通配符文件夹和网址

时间:2013-08-11 13:16:25

标签: .htaccess url-rewriting

我有一些域名,例如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]

1 个答案:

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