Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 如何重写url?_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess 如何重写url?

.htaccess 如何重写url?,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,谁能告诉我怎么重写这个网址吗。我已经看了很多关于stackoverflow的问题,但它们似乎没有找到我的答案 RewriteEngine On 这就是我所拥有的。。。有点穷 我需要重写url的,如果他们不指向一个目录 我需要这样做 any.domain.com/pages/some-page-slug/login 将被重写为的正确url any.domain.com/pages/login.php?page=32 有人对如何实现这一点有什么想法吗?1将product.php?id=12重写为p

谁能告诉我怎么重写这个网址吗。我已经看了很多关于stackoverflow的问题,但它们似乎没有找到我的答案

RewriteEngine On
这就是我所拥有的。。。有点穷

我需要重写url的,如果他们不指向一个目录

我需要这样做

any.domain.com/pages/some-page-slug/login

将被重写为的正确url

any.domain.com/pages/login.php?page=32


有人对如何实现这一点有什么想法吗?

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文件中。这种重定向的好处是什么??请查看关于php和.htaccess中SEO友好重定向301重定向的帖子

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了吗?如果你输入浏览器,你可以在那里看到我的个人资料。如果要执行相同类型的重定向(即到),则可以将以下代码添加到.htaccess文件中

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1
5将域重定向到内部公共html的新子文件夹

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule (.*) /new/$1 

为此,您需要编写一个前端控制器

见、和

或者,在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的内容也不相关,不一定会链接到正确的页面。我认为这是不可取的,对搜索引擎优化不利

另一种选择是使用。但这将很棘手,每当创建/编辑页面/段塞时,都需要重新加载apache配置。

我知道在这种情况下,页面和登录是静态的,一些页面段塞正在更改。您总是希望重定向到static page/pages/login.php?page=32

这就是如何做到这一点:

1重写

RewriteEngine On
RewriteRule ^pages/([a-zA-Z0-9_]+)/login(.*)$ /pages/login.php?page=32
或2重定向Pernament

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]
这是一篇关于htaccesstrics的好文章

某些页面slug和page=32之间的关系是什么?这是从web复制的。请引用来源