.htaccess更改查询字符串的路径 [英] .htaccess change a path to a query strings

查看:76
本文介绍了.htaccess更改查询字符串的路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在example.com/

I have files in example.com/

contact.php
recent.php
videos.php
watch.php

example.com/page/> /page/不是文件夹.但我想处理其他文件夹

example.com/page/ > /page/ is not a folder. but i want to work other folders

contact.php(无分页)

contact.php (no pagination)

example.com/page/contact

recent.php(pagination > recent.php?page=2)

recent.php (pagination > recent.php?page=2)

example.com/page/recent
example.com/page/recent?page=2

watch.php(no pagination > watch.php?title=drama-name)

watch.php (no pagination > watch.php?title=drama-name)

example.com/page/watch/drama-name

videos.php(pagination with get name > videos.php?name=drama-name&page=2)

videos.php (pagination with get name > videos.php?name=drama-name&page=2)

example.com/page/videos/drama-name
example.com/page/videos/drama-name?page=2

这是我的完整htaccess代码(example.com/.htaccess)

Here is my full htaccess codes (example.com/.htaccess)

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,NE,L]

RewriteRule ^page/playlist$ /playlist.php [L]
RewriteRule ^page/submit$ /submit.php [L]
RewriteRule ^page/contact$ /contact.php [L]
RewriteRule ^page/search$ /search.php [L]
RewriteRule ^page/recent$ /recent.php [L]

RewriteRule ^page/watch/([^/]+)? /watch.php?title=$1

RewriteRule ^page/videos/([^/]+)? /videos.php?name=$1

但是在/page/videos/drama-name?page=2中不起作用如何解决?还有另一个问题吗?

But not work in /page/videos/drama-name?page=2 how to fix it? it has another problem?

推荐答案

您可以结合使用正则表达式,并使用QSA标志来缩短.htaccess中的规则:

You can combine regex and shorten your rules in your .htaccess with QSA flag:

RewriteEngine on
RewriteBase /

# add www in host name
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*?)/?$ http://www.%{HTTP_HOST}/$1 [R=301,NE,L]

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [NE,R=301,L]

RewriteRule ^page/(submit|contact|search|recent|playlist)/?$ $1.php [L,NC]

RewriteRule ^page/(videos|watch)/([^/]+)/?$ $1.php?title=$2 [L,QSA,NC]

这篇关于.htaccess更改查询字符串的路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆