【发布时间】:2014-05-13 00:59:00
【问题描述】:
有没有办法让 htaccess 将所有 url 重定向到同一页面,除非它存在?在这种情况下,我希望重定向在幕后。这意味着用户的 URL 不能更改。我需要来自 url 的数据,我只是通过 PHP 服务器处理所有页面内容。写一些疯狂的 php 东西。 ;)
我当前的代码:
RewriteEngine On
#Remove www
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^/?$ "http\:\/\/example\.com\/" [R=301]
#Remove Ending Slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/phpmyadmin/$
RewriteCond %{REQUEST_URI} (.*)$
RewriteRule ^(.+)/$ http://example.com/$1 [R=301]
#Get page from /page/
RewriteCond %{REQUEST_URI} !^/page$
RewriteCond %{DOCUMENT_ROOT}/page%{REQUEST_URI} -f
RewriteRule ^ http://example.com/page_it_should_go_to.php [L]
DirectoryIndex header.php
正是我需要的:
- 所有页面,除非确切的 url 是服务器上的真实位置或在位置 /page 中,否则需要提供 example.com/page_it_should_go_to.php
- phpMyAdmin 需要继续工作
- 没有www
- home 后面没有斜杠
【问题讨论】: