.htaccess,让所有网址秘密地服务于同一页面

时间:2014-04-02 01:01:17

标签: php .htaccess

有没有办法让htaccess将所有网址重定向到同一网页,除非它存在?在这种情况下,我希望重定向是在幕后。这意味着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 

正是我需要的:

  1. 所有页面,除非确切的网址是服务器上的真实位置或位于/位置,否则需要提供example.com/page_it_should_go_to.php
  2. phpMyAdmin需要继续工作
  3. 没有www
  4. 主页上没有斜杠

1 个答案:

答案 0 :(得分:0)

啊哈!我弄清楚出了什么问题。

原来这是多件事!这是我从谷歌搜索得到的:

  1. 您不能拥有绝对网址,因为这会重定向用户。
  2. 当我重定向到/ page时,我从后面留下RewriteCond %{DOCUMENT_ROOT}/page%{REQUEST_URI} -f,这是检查它是否存在于页面目录中。 Hwoops。
  3. 非常感谢StackOverflow!今天我将自己征服。 = d