如何将domain.com/page.php转到domain.com/page/?

时间:2013-11-20 05:45:57

标签: .htaccess

使用

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]

500内部服务器错误

2 个答案:

答案 0 :(得分:1)

首先,关闭Multiviews

其次,您需要一条规则,该请求/page.php重定向浏览器以重新发送/page/请求。

第三,您需要一条规则,将/page/的请求内部重写/page.php

第四,您需要确保您网页中的所有相对链接都更改为绝对链接(以/开头)或将<base href="/" />添加到网页标题中。

Options +FollowSymLinks -Multiviews
RewriteEngine On

RewriteCond %{THE_REQUEST} (GET|HEAD)\ /+([^\?\ ]+)\.php
RewriteRule ^ /%2/ [L,R=301]

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

编辑:你已经编辑了你的问题。

你可能得到500错误的原因是你在L标志后面有一个空格:

# you can't have any spaces in your flags--------v
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]

答案 1 :(得分:1)

试试这个,

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