如何在htaccess中创建永久链接

时间:2011-07-22 00:04:39

标签: .htaccess permalinks

我想在Linux主机中使用.htaccess文件将链接重定向到另一个链接。你能救我吗?

from: http://example.com/examp
to: http://example.com/examp.php

另一个用于我的其他网站

from: http://example.com/examp
to: http://example.com/user.php?u=examp

3 个答案:

答案 0 :(得分:5)

您需要为此启用 mod_rewrite 。首先将这些行放入.htaccess:

RewriteEngine On
RewriteBase /

TBH我不是100%确定你的确切意思是永久链接以及你想如何重定向,所以我将为每个URL提供2个变体:重写(内部重定向)和重定向(301永久重定向)。 / p>

1。这将重写(内部重定向)http://example.com/examphttp://example.com/examp.php的请求,而URL将在浏览器中保持不变:

RewriteRule ^examp$ examp.php [L]

2。这将与上面相同,但是当URL将在浏览器中更改时,具有适当的重定向(301永久重定向):

RewriteRule ^examp$ http://example.com/examp.php [R=301,L]

3。这将重写(内部重定向)http://example.com/examphttp://example.com/user.php?u=examp的请求,而URL将在浏览器中保持不变:

RewriteRule ^examp$ user.php?u=examp [QSA,L]

4。这将与上面相同,但是当URL将在浏览器中更改时,具有适当的重定向(301永久重定向):

RewriteRule ^examp$ http://example.com/user.php?u=examp [QSA,R=301,L]

有用的链接:http://httpd.apache.org/docs/current/rewrite/

答案 1 :(得分:1)

您需要为此

启用mod_rewrite

来自:http://example.com/123 致:http://example.com/index.php?q=123

RewriteEngine on
RewriteBase /
RewriteRule ^/?([-A-Za-z0-9]+)/?$ index.php?q=$1 [QSA,L]

答案 2 :(得分:0)

您需要查看RewriteRules并了解/理解正则表达式。它会是这样的:

    RewriteEngine on
    RewriteRule ^(.*)\/examp$ /examp.php [R=301,L]
    - and - 
    RewriteRule ^(.*)\/[a-zA-Z0-9\-\_\.]+$ /user.php?u=$1 [R=301,L]

后一个例子将采用[]之间的内容并将其置于$ 1变量

这是一个很好的链接,可以帮助您入门: http://www.webweaver.nu/html-tips/web-redirection.shtml