我正在尝试为搜索添加新的路径级别,例如:
wwww.website.com/s/blablabla/2
变为
www.website.com/s/videos/blablabla/2
2是页面。
但是,我无法使用htaccess,因为它保持循环(我认为,因为/ s / videos / contains / s /它继续进行重写...)
到目前为止,我尝试了这些代码:
RewriteCond %{REQUEST_URI} !^/s/.*$
RewriteRule ^(.*)$ /s/videos/$1 [L]
这给我以下错误:
在此服务器上找不到请求的网址/s/videos/index.php。 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。
此代码:
RewriteCond %{REQUEST_URI} ^/s/.*$
RewriteRule ^(.*)$ /s/videos/$1 [L]
给我以下错误:
内部服务器错误
服务器遇到内部错误或配置错误 无法完成您的请求。
请联系服务器管理员, webmaster@website.com并告知他们错误的时间 发生了,你可能做过的任何可能导致这种情况发生的事情 错误。
有关此错误的详细信息可能在服务器错误中可用 日志中。
我也试过
RewriteRule !^s(/|$) s/videos%{REQUEST_URI} [L]
和
RewriteRule ^s/(.*)$ /s/videos/$1 [R=301,NC,L]
但似乎没有工作......
修改
RewriteRule ^s/([A-Za-z0-9-\s]+)/?$ /s/videos/$1 [R=301,NC,L]
工作正常但只有在搜索标记后没有页面...
EDIT2:
我能够通过为不同的场景添加多行来实现它:
RewriteRule ^s/([A-Za-z0-9-\s]+)/?$ /s/videos/$1 [R=301,NC,L]
RewriteRule ^s/([A-Za-z0-9-\s]+)/([0-9]+)/?$ /s/videos/$1/$2 [R=301,NC,L]
不确定这是否是正确的方法
如果我这样做
RewriteRule ^s/(.*)$ /s/videos/$1 [R=301,NC,L]
它给了我
/s/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/videos/searchtag
EDIT3:
RewriteCond %{REQUEST_URI} !^/s/(videos|members|photos)
RewriteRule ^s/(.*)$ /s/videos/$1 [R=301,NC,L]
这是有效的......
答案 0 :(得分:0)
试试这段代码。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^s/([^/]+)/([0-9]+)/?$ /s/videos/$1/$2 [L]