将所有内容重定向到index.php而不更改网址

时间:2015-11-25 15:39:16

标签: php .htaccess mod-rewrite redirect

我正在努力尝试这项工作。我计划对整个网站进行相当复杂的重新设计。由于我的网站应该根据您尝试访问的子文件夹(例如www.mydomain.com/test123)而有所不同,我认为最简单的解决方案是将每个请求重定向到主index.php并从那里处理所有案例。我还想重定向图像和css文件等,因为我也会“手动”处理这些情况。

这正是它应该做的:

  1. 它应该将每个请求重定向到根文件夹
  2. 中的index.php
  3. 它应该在第一个斜杠之后传递所有内容作为查询参数。 (mydomain.com/test123 - > mydomain.com/index.php?q=test123)
  4. 此重定向不应对客户端可见。在上面的例子中,这意味着它应该保留/ test123但服务器 应该收到/index.php?q=test123
  5. 我试过这个,但这不会以某种方式工作......

    RewriteCond %{REQUEST_URI} !^/index.php$
    RewriteRule ^(.*)$ /index.php?q=$1 [P]
    

    非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

此规则应该适用于站点根目录.htaccess:

DirectorySlash Off
DirectoryIndex index.php
RewriteEngine On

RewriteCond %{REQUEST_URI} !^/index\.php$ [NC]
RewriteRule ^(.+)$ /index.php?q=$1 [L,QSA]

无需使用用于代理的P标志,并且需要在Apache配置中启用mod_proxy

答案 1 :(得分:-2)

您可以在php中使用include()函数。

<?php
include('www.google.com');
?>