1

我知道这个问题已经被问过很多次了,但是我对 .htaccess、regualr 表达式、mod 重写等的经验通常让我发疯。

我在大多数网站上看到 url 的结构是类似目录的结构,wwww.linku.biz/edit. 我的终极问题是你是怎么做到的?

所有这些幕后网站是否都有正常的 URL 变量但只是重写了?例如www.linku.biz/myprofile?edit="whatever" ,这一切都是用 .htaccess 和 mod_rewrites 完成的吗?

  • 我想输入我的网址,www.linku.biz/search但实际上www.linku.biz/search.php

  • 我想输入我的网址,www.linku.biz/JackTrow但实际上www.linku.biz/profile.php?us="JackTrow

  • 当我有很多 URL 数据时,我也希望数据重写,例如www.linku.biz/search?a=1&b=2&c=3实际 beeeingwww.linku.biz/search.php?a=1&b=2&c=3

4

2 回答 2

1

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+search\.php\[?^\s] [NC]
RewriteRule ^ search? [R=301,L]

RewriteRule ^search/?$ search.php [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ profile.php?us=$1 [QSA,L]

请注意,您的要求 1 和 3 都将包含在规则 #1 中

于 2013-09-01T05:53:01.450 回答
0

将此规则添加到根文件夹中的 .htaccess 文件中:

去做这个www.linku.biz/JackTrow <--- www.linku.biz/profile.php?us="JackTrow

 RewriteRule ^profile.php?us=(.*)$ /$1 [R=301,L]

去做这个 : www.linku.biz/search however <--- www.linku.biz/search.php

 RewriteRule ^(.*).php$ /$1 [R=301,L]

你的最后一个,我不明白你到底想要什么。

于 2013-09-01T00:58:06.213 回答