【发布时间】:2013-10-04 08:56:01
【问题描述】:
我正在尝试重写,以便您可以访问不带 .html 且不添加斜杠的文件。这是正在使用的代码:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.*?)/?$
RewriteCond %{DOCUMENT_ROOT}/%1.html -f
RewriteRule ^(.*?)/?$ $1.html
但是对于我在服务器上的文件结构,我有这个:
/public_html
..
/beginners
beginners.html
在 /beginners 文件夹内还有其他文件,例如
/beginners/page1.html
我需要重写才能像这样工作:
如果用户输入网址:
website.com/beginners - 服务器将返回
文件beginners.html 当前返回目录/beginners 的内容。所以我需要服务器首先检查beginners.html 是否存在,如果存在-然后服务器服务beginners.html 而不是目录/beginners
如果用户访问 url website.com/beginners/page1 服务器应该首先检查是否
page1.html 存在于文件夹初学者中,如果它找到文件 page1.html 然后它提供文件 page1.html 的内容
如何做到这一点?
【问题讨论】:
-
所以
/beginners/- 是返回目录还是/beginners.html? -
实际上,您似乎只需要摆脱第一个重写条件 - 它指定 URI 不指向目录。
-
@FrankieTheKneeMan /beginners/ 将返回目录
标签: regex apache .htaccess mod-rewrite rewrite