你好,我有一个网站,我想替换所有的?和/的网址/。 我知道这可以通过htaccess文件来完成,但我对htaccess很新
我的htaccess文件中有这段代码
ErrorDocument 404 /error404.php
ErrorDocument 403 /error404.php
Options -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} POST [NC]
RewriteRule ^ - [L]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.*$ [NC]
RewriteRule \.(gif|jpg|jpeg)$ http://www.domain.com [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{THE_REQUEST} \s/+(page1)\.php\?eid=(78)[&\s] [NC]
RewriteRule ^ /%1/%2? [R=301,L]
RewriteRule ^(page1)/(\d+)$ /$1.php?eid=$2 [L,QSA,NC]
RewriteCond %{THE_REQUEST} \s/+page2\.php\?url=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=301,L]
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /page2.php?url=$1 [L,QSA]
提前thnkx ......
我wana取代所有?和/的网址/
喜欢
domain.com/page.php?id=44 by
domain.com/page/id/4
答案 0 :(得分:1)
首先,您需要澄清您打算完成的任务。
如果您打算让用户访问domain.com/page/id/4
并将其内部重写为page.php?id=4
,那么您有两种选择:
1)使用重写规则,例如:
RewriteRule ^/?page/([^/]+)/(.+)$ page.php?$1=$2
2)(首选)使用MultiViews并让你的php脚本通过解析
为你做逻辑REQUEST_URI ($_SERVER['REQUEST_URI']).
答案 1 :(得分:1)
首先,您需要澄清您打算完成的任务。
如果您打算让用户访问domain.com/page/id/4并将其内部重写为page.php?id = 4,那么您有两个选择:
1)使用重写规则,例如:
RewriteRule ^ /?page /([^/]+)/(++)$ page.php?$ 1 = $ 2 2)(首选)使用MultiViews并让你的php脚本通过解析
为你做逻辑REQUEST_URI($ _SERVER ['REQUEST_URI'])。