首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我该怎么重写网址?

我该怎么重写网址?
EN

Stack Overflow用户
提问于 2011-03-02 08:42:34
回答 3查看 902关注 0票数 0

有人能告诉我怎么重写这个URL吗。我看过很多关于堆叠溢出的问题,但他们似乎忽略了我的答案。

代码语言:javascript
复制
RewriteEngine On

这就是我拥有的..。有点差。

如果它们没有指向目录,我需要重写url。

我得这么做..。

Any.domain.com/pages/一些页面-片段/登录

重写到正确的网址..。

Any.domain.com/page/login.php?page=32

有没有人对如何实现这一目标有任何想法?

EN

回答 3

Stack Overflow用户

发布于 2011-03-02 08:47:46

1)将product.php?id=12重写为产品-12.html

这是一个简单的重定向,其中.php扩展被隐藏在浏览器的地址栏和动态url (包含“?”字符)转换为静态URL。

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1

2)将product.php?id=12重写为product/ipod/12.html

SEO专家总是建议在URL中显示主关键字。在以下URL重写技术中,您可以在URL中显示产品的名称。

代码语言:javascript
复制
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)在php和.htaccess的帖子。

代码语言:javascript
复制
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.If了吗?在浏览器中键入http://zorpia.com/roshanbh233,您可以在那里看到我的配置文件。如果您想要执行相同的重定向,即将http://yoursite.com/xyz重定向到http://yoursite.com/user.php?username=xyz,则可以将以下代码添加到.htaccess文件中。

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

5)将域重定向到public_html内部的一个新的子文件夹。

假设您已经重新开发了您的站点,并且所有新的开发都位于根folder.Then的“new”文件夹中,则可以像“test.com/ new”那样访问该网站的新开发。现在,将这些文件移动到根文件夹可能是一个繁忙的过程,因此您可以在.htaccess文件中创建以下代码,并将其放在网站的根文件夹下。因此,www.test.com指出了“新”文件夹中的文件。

代码语言:javascript
复制
RewriteEngine On
RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule (.*) /new/$1 
票数 0
EN

Stack Overflow用户

发布于 2011-03-02 08:51:26

要做到这一点,您需要编写一个前端控制器。

这里这里这里这里

或者,在Apache中,您可以重写以下内容

Any.domain.com/page/32/登录

或者这个:

Any.domain.com/32/登录

甚至这个:

Any.domain.com//32/登录

对此:

Any.domain.com/page/login.php?page=32

要做到这一点,只需使用apache,您需要以某种方式提供页面id。记住,即使是格式any.domain.com/some-slug/32/login,段塞的内容也是不相关的,不一定会链接到正确的页面。我认为这是不可取的和坏的搜索引擎优化。

的另一个替代品是使用RewriteMap。但这将是一个棘手的问题,每当创建/编辑页面/段塞时,都需要reload对apache进行配置。

票数 0
EN

Stack Overflow用户

发布于 2011-03-02 09:01:54

我知道在这种情况下,pageslogin是静态的,some-page-slug正在发生变化。而且您总是希望重定向到静态页面/pages/login.php?page=32

这就是如何做到的:

1)重写

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^pages/([a-zA-Z0-9_]+)/login(.*)$ /pages/login.php?page=32

或2)重定向装饰品

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^pages/([a-zA-Z0-9_]+)/login(.*)$ /pages/login.php?page=32 [R=301,L]

或3)临时重定向

代码语言:javascript
复制
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/的优秀文章

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5165169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档