没有扩展名的页面,之前有被忽视的文本

时间:2013-03-03 00:19:11

标签: .htaccess

我当前的.htaccess允许我按如下方式查看页面:

http://www.test.com/test.php as http://www.test.com/test

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

如何在文件名之前添加任何文本,这将被忽略,例如:

http://www.test.com/test34566/test or http://www.test.com/anything/test

2 个答案:

答案 0 :(得分:0)

就正则表达式而言,您的网址会在最后一个反斜杠之前以及之后的所有内容中分成所有内容。

^(.*)/([^/]*)/?$

这应该允许你忽略之前的所有内容($ 1)并使用($ 2)之后的所有内容。

请注意,如果您使用的是例如您的示例中的目录,则需要使用重写条件,该条件还会检查以确保请求的URL不是实际目录,以及它不是文件。

答案 1 :(得分:0)

您可以在根目录下的一个.htaccess文件中尝试:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  .*/([^/]+)/? [NC]
RewriteRule .*              %1.php       [L]

无声地映射

http://www.test.com/anything

http://www.test.com/any/number/of/folders/anything

要:

http://www.test.com/anything.php

对于永久和可见重定向,将[L]替换为[R = 301,L]