1

我试图让我的链接更容易编写,没有.php。

我的重写规则是:

RewriteEngine on
RewriteRule ([a-z]+)$ $1.php

这是我自己编写的第一个 .htaccess,但它似乎不起作用。我很擅长正则表达式。我在这里看不到问题。

谢谢您的帮助。

4

3 回答 3

1
RewriteEngine on
RewriteRule ^(.*)$ $1.php

从这里开始:http ://www.yourhtmlsource.com/sitemanagement/urlrewriting.html

于 2012-07-26T03:09:40.353 回答
1

尽管您的适用于字母文件名,但无论文件的名称/路径如何,这都是我用来省略.php扩展名的:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

它确保您没有尝试请求目录,并且请求的文件是 PHP 文件。

于 2012-07-26T03:10:25.500 回答
1

确保在 apache 配置以及 AllowOverride All 中启用了 mod_rewrite

LoadModule rewrite_module modules/mod_rewrite.so
<Directory "c:/wamp/www/">

    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from all

</Directory>

让它在 wamp 中工作 单击系统托盘中的 wamp 图标转到 apache 然后单击 httpd.conf

在文件中搜索 mod_rewrite.so。如果该行被注释 (#) 取消注释。它应该看起来像

LoadModule rewrite_module modules/mod_rewrite.so

然后寻找类似的东西

<Directory "c:/wamp/www/">

你应该找到一个AllowOverride noneChange it to AllowOverride all Restart your wamp server

然后将您的 .htaccess 设置为 nickb 建议

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

如果它仍然不起作用,只需在 httpd.conf 中搜索AllowOverride none并将它们全部更改为AllowOverride all,因为可能有几个

于 2012-07-26T03:27:09.337 回答