有人可以告诉我如何重写此网址。我已经查看了很多关于stackoverflow的问题,但他们似乎错过了我的答案。
RewriteEngine On
这就是我所拥有的...它有点差。
如果他们没有指向目录,我需要重写url。
我需要这样做......
any.domain.com/pages/some-page-slug/login
要重写为正确的网址
any.domain.com/pages/login.php?page=32
有没有人对如何实现这一点有任何想法?
答案 0 :(得分:0)
1)将product.php?id = 12重写为product-12.html
这是一个简单的重定向,其中.php扩展名在浏览器的地址栏中隐藏,动态URL(包含“?”字符)被转换为静态URL。
RewriteEngine on
RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1
2)将product.php?id = 12重写为product / ipod-nano / 12.html
SEO专家总是建议在URL中显示主要关键字。在以下URL重写技术中,您可以在URL中显示产品的名称。
RewriteEngine on
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2
3)将非www URL重定向到www URL
如果您在浏览器中输入yahoo.com,它将被重定向到www.yahoo.com。如果您想对您的网站执行相同操作,请将以下代码放入.htaccess文件中。这种重定向有什么好处?请查看关于SEO友好重定向(301)重定向的帖子和.htaccess。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^optimaxwebsolutions\.com$
RewriteRule (.*) http://www.optimaxwebsolutions.com/$1 [R=301,L]
4)将yoursite.com/user.php?username=xyz重写为yoursite.com/xyz
您是否检查过zorpia.com。如果您在浏览器中输入http://zorpia.com/roshanbh233,则可以在那里看到我的个人资料。如果您想进行相同类型的重定向,即http://yoursite.com/xyz到http://yoursite.com/user.php?username=xyz,那么您可以将以下代码添加到.htaccess文件中。
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1
5)将域重定向到public_html内的新子文件夹。
假设您已经重新开发了您的站点,并且所有新开发都驻留在内部根文件夹的“new”文件夹中。然后可以像“test.com/new”那样访问网站的新开发。现在将这些文件移动到根文件夹可能是一个繁忙的过程,因此您可以在.htaccess文件中创建以下代码并将其放在网站的根文件夹下。结果,www.test.com指出“新”文件夹中的文件。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule (.*) /new/$1
答案 1 :(得分:0)
要做到这一点,你需要编写一个前端控制器。
或者在Apache中你可以重写这个
any.domain.com/pages/32/login
或者这个:
any.domain.com/32/login
甚至是这样:
any.domain.com/some-slug/32/login
到此:
any.domain.com/pages/login.php?page=32
只使用apache这样或那样做,你需要以某种方式提供页面ID。请记住,即使使用格式any.domain.com/some-slug/32/login
,slug的内容也无关紧要,也不一定会链接到正确的页面。我认为这对于SEO来说是不受欢迎的。
另一个替代方案正在使用RewriteMap。但是,每当创建/编辑页面/ slug时,这将是棘手的并且需要reload
apache配置。
答案 2 :(得分:0)
我了解pages
和login
在这种情况下是静态的,some-page-slug
正在发生变化。您始终希望重定向到静态页面/pages/login.php?page=32
所以这是怎么做的:
1)重写
RewriteEngine On
RewriteRule ^pages/([a-zA-Z0-9_]+)/login(.*)$ /pages/login.php?page=32
或2)重定向广告
RewriteEngine On
RewriteRule ^pages/([a-zA-Z0-9_]+)/login(.*)$ /pages/login.php?page=32 [R=301,L]
或3)重定向临时
RewriteEngine On
RewriteRule ^pages/([a-zA-Z0-9_]+)/login(.*)$ /pages/login.php?page=32 [R=302,L]
这是关于htaccess trics的精彩文章 http://perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/