我正在尝试将动态网址设置为静态网址。
这是我现在拥有的典型网址:
http://www.somedomain.com/design/index.php?p=about
我希望它是:http://www.somedomain.com/about
到目前为止,我已将它看起来像这样:http://www.somedomain.com/design/about.html
这是我正在使用的Rewriterule:RewriteRule ^([a-z]+).html$ index.php?p=$1 [L]
我如何修改它,看起来像这样:http://www.somedomain.com/about
?
感谢您的帮助! 非常感谢!
答案 0 :(得分:0)
使用重写规则来提供“静态”URI 从不是一个好主意。
您可以使用其他一些想法:
index.php
或index.html
的文件。这样,网址会显示http://example.com/about/,您仍可以根据需要显示所需的信息。POST
方法代替GET
方法。这将显示为http://example.com/about.php(注意:此后没有?
或其他参数。)答案 1 :(得分:0)
docroot/.htaccess
启动它:
RewriteEngine On
RewriteBase /
然后是规则的通用版本:
Rewrite Rule ^(\w+)$ index.php?p=$1 [L]
这会将任何字串的请求重写为index.php
。您需要注意,如果匹配发生,重写引擎会重新扫描.htaccess
文件,因此您需要确保不创建循环。在这种情况下,替换字符串中包含“.
”而模式没有,因此不会发生这种情况,但对于更复杂的情况,您可能需要使用一个或多个{保护'规则{ {1}}陈述。再次,阅读Apache文档。