特定的URL重写情况

时间:2013-08-16 00:54:16

标签: mod-rewrite url-rewriting apache2

我正在尝试在我的Apache2服务器上实现这一点:

随时输入这样的网址:

http://www.mydomain.com/first_location

mod_rewrite应重定向到:

http://www.mydomain.com/first_location/first_location.php

其中“first_location”可以是任何有效的文件夹名称。

我能够收集到这么多:

RewriteRule ^[A-Za-z0-9-]/ .......

但不确定如何处理此情况下的重定向网址部分。

感谢任何帮助以完成替换部分(并在必要时更正模式部分)。

1 个答案:

答案 0 :(得分:1)

如果first_location是有效文件夹,则会有一个名为 mod_dir 的apache模块,该模块会自动将浏览器重定向到同一文件夹但带有斜杠。因此,您可以使用DirectorySlash Off关闭 mod_dir ,或者允许重定向并仅匹配斜杠。所以你想要的是:

RewriteEngine On
# check that it's a valid folder
RewriteCond %{REQUEST_FILENAME} -d
# check that the php file actually exists:
RewriteCond %{REQUEST_URI} ^/([^/]+)/$
RewriteCond %{REQUEST_FILENAME}%1.php -f
# rewrite
RewriteRule ^/?([^/]+)/$ /$1/$1.php [L]