使用
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]
500内部服务器错误
答案 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]