.htaccess - htaccess 和 URL 重写

标签 .htaccess url-rewriting

我正在尝试使用 htaccess 进行一些 URL 重写,但有点困难。 基本上我尝试使用以下 URL:

http://www.example.com/[页面名称]

并显示位于以下位置的文件的内容:

http://www.example.com/site/[页面名称].php

我在网上搜索过,但找不到有效的东西。

我的 htaccess 文件如下所示:

Redirect 301 /page http://www.example.com
Redirect 301 /privacy http://www.example.com/site/privacy.php
Redirect 301 /EULA http://www.example.com/site/EULA.php
Redirect 301 /etiquette http://www.example.com/site/etiquette.php

ErrorDocument 404 /site/404.php
# Rewrite non-www to www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

一旦我弄清楚我的问题,就不再需要顶部的重定向。

有什么帮助吗?

最佳答案

这应该是您完整的 .htaccess:

Options +FollowSymLinks -MultiViews

ErrorDocument 404 /site/404.php

Redirect 301 /page http://www.example.com
Redirect 301 /privacy http://www.example.com/site/privacy.php
Redirect 301 /EULA http://www.example.com/site/EULA.php
Redirect 301 /etiquette http://www.example.com/site/etiquette.php

# Rewrite non-www to www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

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

关于.htaccess - htaccess 和 URL 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17991487/

相关文章:

.htaccess 如果 URL 的子域删除 https

没有名字的 ASP.NET 网页,比如 stackoverflow?

wordpress - htaccess 将传入链接重写为新链接

url-rewriting - WordPress:如何将生成的 URL(永久链接)转换为漂亮的 URL?

apache - htaccess在localhost中有效,但在EC2实例中无效

Apache 服务器 RewriteRule 到 Tomcat WAR

php - Laravel .htaccess 重写规则转换为 IIS

ruby-on-rails - 如何在 Rails 路由中使用正则表达式进行重定向?

php - 重定向跳过 www 是常见的做法吗?

linux - 手动密码保护文件/文件夹 (Linux)