6

我一直在本地主机上工作,我的 htaccess 文件是

Options +FollowSymLinks 
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]

添加htacces代码后,url

localhost/movies/news.php

作品

localhost/movies/news

也可以,但是

localhost/movies/news/

不起作用。它显示“内部服务器错误”。如何使用斜线和不使用斜线。

4

2 回答 2

2

你试试这个代码:

Options +FollowSymLinks -MultiViews
RewriteEngine On

# Internally forwards movies/news/ to movies/news.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
于 2013-09-06T13:58:05.800 回答
1

问题是当您添加斜线时news/.php,这不起作用。

更好的解决方案是重写为 GET 变量,如下所示:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?url=$1 [L]

然后您可以过滤脚本中的 GET 变量并包含您需要的文件或内容。

于 2013-09-06T12:04:37.920 回答