1

我有这个重写规则,它将 .php 扩展名添加到 url。

Url 的输入如下所示:http://localhost/Home

Url 的读取如下所示:http://localhost/home.php

我遇到的问题是一些网址可能看起来像这样:

http://localhost/sub/123

我应该解释一下,这实际上不是一个子目录。该sub部分是文件,并且123用作获取变量。这样看起来更干净。

如果发生这种情况,您会收到 500 错误;

这是目前的情况

#add php extension
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

这就是我尝试过但不起作用的方法。

#add php extension
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)|(.*)/(.*)$ $1.php
4

1 回答 1

1

用这个改变你的代码来解决你的问题:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteCond %{REQUEST_URI} !^/(phpscripts|js)/ [NC]
RewriteRule ^([^/]*)(?:/(.*?|))?/?$ /$1.php?$2 [L]
于 2013-05-29T13:01:34.947 回答