2012-02-21 68 views
2

我有一个网页www.mypage.com,我想将特定网址重定向到另一个不存在的URL。通过.htaccess将URL重定向到自定义网址

例如,我想www.mypage.com/about重定向到www.mypage.com/about-company.php,其中/ about不存在 - 这是我写的自定义URL。

我没有动态网址,只想告诉.htaccess“this/CUSTOM_URL redirect to this /URL.php”。

的网址列中,它必须显示自定义网址

我不知道是否可以做到。我一直在寻找它,我发现的所有方法都是重写动态网址的方式,以及模式。

一个例子就是Wordpress的永久链接,您可以在其中指定每个页面所需的URL。

回答

3

尝试添加下列到.htaccess文件在您的网站获得你要求的工作的具体例子的根目录:使用www.mypage.com/about访问www.mypage.com/about-company.php

RewriteEngine on 
RewriteBase/

#if about was requested, server about-company.php 
RewriteRule ^about$ about-company.php [L,NC] 

如果您想要一个更一般的规则,例如www.mypage.com/anything用于访问 www.mypage.com/anything.php你可以替换上面

RewriteRule ^(\w+)$ $1.php [L,NC] 

或者你可以有所有的请求到该决定显示哪些页面一个PHP文件的规则如

RewriteRule ^(\w+)$ index.php?page=$1 [L,NC] 
+0

非常感谢。事实上,似乎我使用的服务器有一些麻烦,因为我在发布这个问题之前尝试过,在另一台服务器上工作。但是,您的解决方案完美运作。谢谢你的时间! – Unapedra 2012-02-21 19:52:46

1

您正在寻找重写规则。

一些阅读上:Apache Rewrite rules

+0

我以前读过这个。看起来这台服务器有一些麻烦,因为我以前尝试过,现在在另一台服务器上工作,但不在这台服务器上。无论如何感谢您的答案! – Unapedra 2012-02-21 19:54:22

0

大厦乌尔里希Palha的评论,我发现这个工作对我来说是一个.htaccess文件提供替代与蒙重定向到一对夫妇的我自己的.PHP页面:

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^(optionOne$|optionOneWithEndingSlash/$|optionTwo$|etCetera/$) ppl/peaceseeker.php [L] [NC] 
RewriteRule ^(donny$|donny/$|donnycallahan$|donnycallahan/$) ppl/donnycallahan.php [L] [NC] 

(我提到这一点是因为当人们输入example.com/about/(带有结尾斜杠)时,Ulrich的解决方案对我造成了一个问题)。

谢谢你,乌尔里希。如果有人知道如何修改Ulrich的.php-suffix Rule以递归地下降到任意数量的目录,我会很感激评论!

谁都暂时解决谁需要下降到目录,这个工作对我来说:

RewriteRule ^(\w+)$ $1.php [L,NC] 
RewriteRule ^(\w+)/(\w+)$ $1/$2.php [L,NC] 

第二个命令将处理所有目录的第一个子目录在您的网站的根文件夹。

通过在$(每个子级目录的每个新级别)之前添加更多“/(\ w +)”实例,您可以处理3个级别的子目录,或者4或5或10,然后添加/ $ 3/$ 3/$ 4,/ $ 3/$ 4/$ 5,或者在规则中的“.php”之前立即需要的任何内容。我只需要2级目录(现在),所以我对我发布的内容很满意;该解决方案非常简单。

如果可能,我还是喜欢递归解决方案。