htaccess从index.php重定向到/仅在特定文件夹中

时间:2016-05-29 19:54:47

标签: php apache .htaccess redirect mod-rewrite

我想在我的htaccess文件中创建重定向。从带有index.php的url到没有index.php的页面,但仅适用于一个特定文件夹" catalog"。

例如:

/catalog/some_folder/index.php/catalog/some_folder/

/catalog/some_folder/etc/index.php/catalog/some_folder/etc/

/catalog2/some_folder/index.php之类的网址必须重定向

我尝试添加这些行(localhost因为它是xampp):

  RewriteCond %{REQUEST_URI} /catalog/+[^\.]+index.php$
  RewriteRule ^index\.php$ localhost/$1 [R=301,L]

但这并没有奏效。我怎么能强迫它正常工作?

4 个答案:

答案 0 :(得分:1)

if gae == "Y" or "y"

如果您需要删除地址末尾的所有“ index.php”

答案 1 :(得分:0)

删除index.php:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

请记住,您需要激活mod_rewrite。

答案 2 :(得分:0)

您可以在root .htaccess中使用此规则:

# remove index.php
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(catalog/.+)index\.php$ /$1 [L,R=302,NC,NE]

答案 3 :(得分:0)

RewriteEngine On
RewriteCond %{THE_REQUEST} (?:/[^/]*)*/index\.php[?#\ ]
RewriteRule .* %{REQUEST_URI}/../ [L,R=301]

对我来说,这是有效的,上面的解决方案是将我发送到一个级别的文件夹。