我有一个页面www.mypage.com,我想将特定网址重定向到另一个不存在的网址。
例如,我希望www.mypage.com/about
重定向到www.mypage.com/about-company.php
,其中/ about不存在 - 这是我自己编写的自定义网址。
我没有动态网址,只想告诉.htaccess
“这/ CUSTOM_URL重定向到此/URL.php”。
在网址栏中,必须显示自定义网址。
我不知道是否可以做到。我已经找到了它,我发现的所有方法都是重写动态URL的方式,因此,模式。
其中一个例子是 Wordpress的永久链接,您可以在其中指定每个页面所需的URL。
答案 0 :(得分:3)
尝试将以下内容添加到您网站根目录中的.htaccess
文件中,以获取您请求工作的具体示例:使用www.mypage.com/about-company.php
访问www.mypage.com/about
。
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]
答案 1 :(得分:1)
您正在寻找重写规则。
对此有些了解:Apache Rewrite rules
答案 2 :(得分:0)
根据Ulrich 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规则以递归方式下降到任意数量的目录中,我将非常感谢您的评论!
作为任何需要进入目录的人的临时解决方案,这对我有用:
RewriteRule ^(\w+)$ $1.php [L,NC]
RewriteRule ^(\w+)/(\w+)$ $1/$2.php [L,NC]
第二个命令将处理网站根文件夹中所有目录的第一个子目录。
只需在$(每个新级别的子目录一个)之前添加更多“/(\ w +)”实例,然后添加/ $ 3,就可以处理3个级别的子目录,或4个,5个或10个子目录,$ 3 / $ 4,/ $ 3 / $ 4 / $ 5,或规则中“.php”之前的任何必要条件。我只需要2级目录(现在),所以我对发布的内容很满意;这个解决方案很简单。
如果可能的话,我仍然喜欢递归解决方案。