0

使用 .htaccess 文件更改这些 url

website.com/b.php?g=666website.com/666

website.com/g/2/1.gifwebsite.com/2/1

这是怎么做的

还有简单的例子来学习如何做到这一点?

谢谢

4

2 回答 2

0

http://website.com/666对于内部重写对to的请求/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对于内部重写对to的请求/g/2/1.gif

RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/?$
RewriteCond %{DOCUMENT_ROOT}/g/%1/%2.gif -f
RewriteRule ^ /g/%1/%2.gif [L]
于 2012-12-18T21:10:52.800 回答
0

你可以把这个放在你的.htaccess

RewriteEngine On
RewriteRule ^([^/]*)$ /b.php?g=$1 [L]

使您的第一个模式工作。如果您想要的不仅仅是b.php工作(您希望它与任何PHP 文件一起工作),您可以根据需要修改规则。(这个问题没有具体说明规则应该有多普遍。)

它是否有效取决于是否在主 httpd.conf 文件中启用了此类设置。换句话说,Apache 可能被设置为不允许您在.htaccess文件中使用重写引擎。YMMV。

要了解它们是如何工作的,请浏览Apache 文档,尤其是此页面上的示例。

您也可以尝试使用重写规则生成器之类的东西来碰碰运气,但最好阅读文档,这样您就可以了解生成的规则的作用。

第二个可能适用于此:

RewriteEngine On
RewriteRule ^([^/]*)([^/]*)$ /g/$1/$2.gif [L]

(当然,如果您也使用第一个,则不需要两次“RewriteEngine On”。)

于 2012-12-18T16:37:52.013 回答