htaccess(无重定向)[REWRITEURL](index.php的文件夹)

时间:2009-04-30 15:52:03

标签: php .htaccess

我只想快速进行htaccess重定向。即:

domain.com/subfolderGreen - > domain.com/index.php?folder=subfolderGreen

(请注意,子文件夹绿色实际存在)

我一直在尝试,但无法达到所需的正则表达式。

感谢。 一个。

增加:

抱歉,我希望这适用于任何子文件夹,而不仅仅是“subfolderGreen” 我正在使用

RewriteRule ^ /([^ /] +)/?$ /index.php?folder=$1 [L]

但它不起作用。 任何线索?

4 个答案:

答案 0 :(得分:2)

我认为你的例子会导致无限循环,因为/index.php匹配你正在做的事情。试试这个:

RewriteRule ^([A-Za-z0-9]+)/?$ /index.php?folder=$1 [L]

如果您希望它适用于所有存在的目录,这可能也会起作用。

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)/?$ /index.php?folder=$1 [L]

答案 1 :(得分:1)

RewriteRule ([^/]+)$ index.php?folder=$1

我认为这样做会有所帮助。

在.htaccess中使用时,RewriteRule有一些令人困惑的问题,需要添加RewriteBase。

您看到了哪些错误/问题?如果你想确定它是如何重定向的,那么添加[R]通常可以帮助调试。

最后......子文件夹Green是否确实存在?如果它存在可能会导致一些问题。

答案 2 :(得分:0)

我相信它是:

RedirectMatch 301 domain.com/(.*) domain.com/index.php?folder=$1

答案 3 :(得分:-1)

RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /(([^/\ ]+/)*)/+([^\ ]*)
RewriteRule ^ /%1%3 [L,R=301]
RewriteRule ^([^/]+)/?$ index.php?folder=$1 [L]

如果有人访问website.com/mypage/////,第2行将处理此案例,因此默认为website.com/mypage/(我认为)