在每个html或php url上显示index.php,而不更改url

时间:2013-10-23 07:00:50

标签: php .htaccess url redirect

在每个html或php网址上显示index.php,而不更改网址

离。用户输入anything-everything.html(.php)将显示index.php而不更改url,

condition - hosts-everything.html(.php)在主机上不存在

像404重定向而不改变网址

2 个答案:

答案 0 :(得分:1)

欢迎来到SO。如果您在Apache网络服务器上运行您的网站,则可以使用Apache Module mod_rewrite来实现此目的。以下是.htaccess文件的示例,您必须将其放在网站的根目录中。

# switch on mod_rewrite
RewriteEngine On

# redirect all non-www request to www
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# rewrite all physical files and folders
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d

# add all exceptions that should not be redirected
RewriteCond %{REQUEST_URI} "/layout/" [OR]
RewriteCond %{REQUEST_URI} "/javascript/" [OR]
RewriteCond %{REQUEST_URI} "/content"

# and finally pass everything to the index.php as a parameter
RewriteRule .* - [L]
RewriteRule (.*) index.php?value=$1 [QSA]

这将执行以下操作:

  • 如果用户请求 http://domain.com ,他将被提交 http://www.domain.com
  • 请求 domain.com/hello/world.html 将以index.php文件结尾,其中包含$_GET['value']的现有hello/world.html,然后可以进一步处理

答案 1 :(得分:0)

使用apache重写(如果您使用apache并且可以访问服务器)。 来自Apache rewrite all paths to index.php的食谱应该没问题。