2017-10-21 152 views
3

我在编码我的htaccess文件时遇到了麻烦,无法执行我所需要的操作 - 我对htaccess中使用的语言不熟悉,.htaccess允许扩展名,不允许扩展名,并允许尾随斜杠

这是我到目前为止有:

RewriteOptions inherit 
ErrorDocument 404 http://www.tempsite.com/400.php 
ErrorDocument 500 http://www.tempsite.com/500.php 

RewriteEngine On 

RewriteRule ^index/?$ index.php [NC] 
RewriteRule ^pricing/?$ pricing.php [NC] 
RewriteRule ^support/?$ support.php [NC] 
RewriteRule ^about/?$ about.php [NC] 
RewriteRule ^learning/?$ learning.php [NC] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.php [L] 
从我的测试,我知道这是什么一样

所以是:

  • 设置了一个404和500错误页面重定向
  • 任何以斜杠结尾的页面,重定向到.php
  • 以任意扩展名结尾的任何页面,重定向到.php

这就是我想要的但是我不想每次创建新页面时都要添加每个页面:RewriteRule ^index/?$ index.php [NC]如何编写一个RewriteRule可以做同样的事情(允许使用斜线没有),但所有的域名页面?

回答

2

您可以使用:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

而不是从RewriteRule ^index/?$ index.php所有行...

+0

嗨,哥们!感谢您的评论然而这并没有为我工作:( – Jesus

+0

是什么问题? – Croises

+0

林不知道如何错误检查htaccess文件 - 没有出现在控制台 – Jesus