网站服务器是linux系统,运行在阿里云虚拟主机上的,源代码是通过ftp上传修改,网站之前是纯静态的网站,因为需求,自己写了几个php的页面,请问:
1、www.xxxx.com/111.php怎么改成www.xxxx.com/111.html
2、www.xxxx.com/111.php?a=1怎么改成www.xxxx.com/111/1这样的结构或者类似的,反正地址不带?就行
3、www.xxxx.com/111.php?id=1也是改成地址里不带?的结构
伪静态的规则该怎么写啊?
回复讨论(解决方案)
首先你得讲清楚你的规则需求。111.html这里的文件名是固定的?还是任意数字?
原来的静态文件都是什么样的目录结构?
不搞清楚这些,很可能把正常的访问也重定向了。
那个111.php是我打的比方,其实就是想把news.php变成news.html,还有就是news.php?a=1这样的格式变成不带?的格式。
首先你得讲清楚你的规则需求。111.html这里的文件名是固定的?还是任意数字?
原来的静态文件都是什么样的目录结构?
不搞清楚这些,很可能把正常的访问也重定向了。
那个111.php是我打的比方,其实就是想把news.php变成news.html,还有就是news.php?a=1这样的格式变成不带?的格式。
我看你参数名称都不一样,那得一条条写了。
比如
www.xxxx.com/111.php?a=1怎么改成www.xxxx.com/111/1
规则是这样的:
RewriteRule ^111/(.*)$ /111.php?a=$1 [L]
我看你参数名称都不一样,那得一条条写了。
比如
www.xxxx.com/111.php?a=1怎么改成www.xxxx.com/111/1
规则是这样的:
RewriteRule ^111/(.*)$ /111.php?a=$1 [L]
RewriteEngine On
RewriteRule ^news\.html$ news.php
RewriteRule ^news/(.*)$ /news.php?a=$1 [L]
RewriteCond %{HTTP_HOST} !^www.xx网站.com$ [NC]
RewriteRule ^(.*)$ http://www.xx网站.com/$1 [L,R=301]
这是已写的规则,现在url是这样的,www.xx网站.com/news.html,www.xx网站.com/news.html?a=2,我很郁闷,为什么还是不行啊?方便的话可以加您QQ或者微信么?我的QQ:742487438
哪条规则有问题?301那条?
哪条规则有问题?301那条?
301那条没问题,RewriteRule ^news/(.*)$ /news.php?a=$1 [L] 您给我的这条,好像没生效,现在url地址是这样的:www.xx网站.com/news.html?a=2,只是.php变成了.html,但是?还在
哪条规则有问题?301那条?
301那条没问题,RewriteRule ^news/(.*)$ /news.php?a=$1 [L] 您给我的这条,好像没生效,现在url地址是这样的:www.xx网站.com/news.html?a=2,只是.php变成了.html,但是?还在
url重写静态化不是这样用的。
你要访问
www.xx网站.com/news/2
这样的网址
你提问的时候用的网址格式不是很好的么?怎么实际应用又变成参数形式了?
哪条规则有问题?301那条?
301那条没问题,RewriteRule ^news/(.*)$ /news.php?a=$1 [L] 您给我的这条,好像没生效,现在url地址是这样的:www.xx网站.com/news.html?a=2,只是.php变成了.html,但是?还在
url重写静态化不是这样用的。
你要访问
www.xx网站.com/news/2
这样的网址
奥奥,我懂了,真晕,我以为url是自动转换成 www.xx网站.com/news/2 这样的格式,这次明白了,是要自己调用这样的格式啊,太感谢了!