如何在.htaccess文件的帮助下将第一个参数重命名为任何变量?
例如,对于http://localhost/mysite/index.php
,我希望将index.php或任何其他页面名称重命名为某个特定的名称。
例如,.htaccess将向我返回以下url
http://localhost/mysite/page
“页面”可以是任何页面名称,如index.php、about.php等。
发布于 2012-03-09 12:42:12
要仅“允许”带有字母的页面:
RewriteEngine on
RewriteRule ^mysite/([a-z]+)$ http://localhost/mysite/$1.php [L]
“允许”包含任何字符的页面
RewriteEngine on
RewriteRule ^mysite/([.]+)$ http://localhost/mysite/$1.php [L]
发布于 2012-03-09 12:37:57
使用Mod_rewrite重写您的url。这是基于模式的。
首先将此代码添加到您的.htaccess中
Options +FollowSymlinks on
这将打开重写引擎。然后定义一个必须捕获和重写的模式:
RewriteRule ^page/(^/.+)/?$ ^.php L
我认为这条规则会重写你所要求的内容。要获得更多信息,只需在谷歌上查看mod_Rewrite使用的示例
发布于 2012-03-09 12:44:46
通常在查询字符串中包含一个插件或请求URI,然后结合使用.htaccess和PHP来重写传入的请求。
例如,您可以在.htaccess文件中包含以下内容,以捕获所有传入的请求:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?url=$1 [L,QSA]
这将重写任何不是文件或目录的传入URL。所以http://example.com/page是匹配的。
然后,在您的index.php脚本中,您将具有类似于以下内容的内容:
<?php
$parts = explode('/', $_GET['url']);
这只是在斜杠上拆分你的网址,所以如果请求的网址是/page/about-us,你会得到一个看起来像下面这样的数组:
array(2) {
[0]=> string(4) "page"
[1]=> string(8) "about-us"
}
希望这能有所帮助。
https://stackoverflow.com/questions/9634029
复制