与.htaccess文件URL重写MOD
website.com/b.php?g=666改变这些网址,以website.com/666
和
网站。 com/g/2/1.gif至website.com/2/1
这是怎么完成的
也简单的例子来学习如何做到这一点?
感谢
与.htaccess文件URL重写MOD
website.com/b.php?g=666改变这些网址,以website.com/666
和
网站。 com/g/2/1.gif至website.com/2/1
这是怎么完成的
也简单的例子来学习如何做到这一点?
感谢
你可以把这个你.htaccess
RewriteEngine On
RewriteRule ^([^/]*)$ /b.php?g=$1 [L]
,让您第一图案里面工作。如果您不仅需要b.php
(需要它与任何 PHP文件一起使用),还可以根据需要修改规则。 (这个问题没有说明该规则应该是多么普遍。)
它是否有效取决于在主httpd.conf文件中是否启用了这样的设置。换句话说,Apache可能设置为而不是允许您在.htaccess
文件中使用重写引擎。因人而异。
要了解这些工作方式,请浏览the Apache documentation,特别是关于this page的示例。
你也可以试试你的运气,如rewrite rule generator,但是阅读文档也很好,所以你对生成的规则有什么了解。
第二个可能与这方面的工作:
RewriteEngine On
RewriteRule ^([^/]*)([^/]*)$ /g/$1/$2.gif [L]
(当然,你不必把“RewriteEngine叙述在”两次,如果你使用的第一个也是如此。)
好的欢呼的第一位,但我不明白如何做第二个呢? ? – user1616846
我正在处理这个问题,但这很困难,因为我无法在您的Web服务器上进行实验来验证我的规则是否正常工作....我仅限于纯粹的理性主义方法。 – iconoclast
非常感谢。你能做第二个,忘记第一个吗? – user1616846
对于内部重写的请求http://website.com/666
到/b.php?g=666
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /b.php?g=$1 [L]
对于内部重写为http://website.com/2/1
到的请求:
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/?$
RewriteCond %{DOCUMENT_ROOT}/g/%1/%2.gif -f
RewriteRule^/g/%1/%2.gif [L]
网上有很多网页给出了例子。谷歌的“URL重写htaccess”。第一个命中是在Apache文档中:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html –