如何重写网站的路径?

时间:2017-12-29 18:47:28

标签: php html .htaccess mod-rewrite web

实际上我正在努力建立一个网站,以便在编码方面做得更好,但无论我阅读多少,我都不知道如何改写路径。

任何tipps如何重写 http://domain/login/php/login.phphttp://domain/login.php

祝你好运, 一个咸味的菜鸟:c

1 个答案:

答案 0 :(得分:0)

要重写路径,您需要在根目录中包含。 htaccess 文件,以更改 Apaches 配置设置。

带有mod_rewrite的 htaccess路线

在根文件夹中添加名为.htaccess的文件,并查看以下详细信息:

.htaccess中的此代码段将确保对不存在的文件和文件夹的所有请求都将重定向到index.php:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

这启用了重写引擎:

RewriteEngine on

检查现有文件夹(-d)和文件(-f):

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

这实际上是重定向:

RewriteRule . index.php [L]

您可以通过将RewriteRule修改为以下内容来扩展它以将请求的路径传递给index.php文件:

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

^(。*)$ part告诉重写模块我们要将整个请求的路径作为一个参数传递。 QSA部分告诉模块将任何查询字符串附加到请求。 ?q = $ 1告诉模块如何传递参数。在这种情况下,它作为q参数传递下来。您可以使用正则表达式进一步扩展它。例如:

RewriteRule ^([^/]*)(.*)$ index.php?first=$1&second=$2

这将传递路径的第一部分作为第一个参数,其余部分作为第二个参数传递。所以以下要求

http://yourhost.com/some/path/somewhere

将导致

http://yourhost.com/index.php?first=some&second=path/somewhere