子文件夹中的.htaccess无效

时间:2013-09-15 22:59:33

标签: php apache .htaccess mod-rewrite

我有一个网址赞

http://localhost/coupon/stores.php?store_slug=url

我想像这样改变它

http://localhost/coupon/url

我尝试使用此代码

RewriteEngine on
RewriteBase /coupon/
RewriteCond %{REQUEST_FILENAME} ! -f
RewriteCond %{REQUEST_FILENAME} ! -d
RewriteRule (.*) stores.php?store_slug=$1

但它不起作用 用上面提到的.htaccess代码得到500内部服务器错误。 我在子文件夹中使用此.htaccess文件,即优惠券

任何人都可以查看哪里出错了?

1 个答案:

答案 0 :(得分:7)

尝试一下:

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /coupon/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) stores.php?store_slug=$1 [L]

!-f/d之间不应有空格。

请注意,上述规则只会使http://localhost/coupon/url正常工作,因为它会在内部将coupon文件夹中的任何请求重定向到stores.php文件。


另外需要注意的是,对于CSS,JS,Images,您需要使用绝对路径,因为使用相对路径会假设CSS,JS和Images位于优惠券文件夹中。

因此,如果你有这样的css/my.css它会认为它在coupon/css/my.css内,所以你需要将其用作http://yourdomain.com/css/my.css来避免这种情况。

如果您在网址后面放置一个/,它会认为该文件夹就是这样的coupon/flipkart/css/my.css