在我的网站上有一个注册导师的链接.这个链接是这样的
http://www.myweb.com/profiles/tutors/index.php?tutorCode=1285&tutorName=Robert%20Sakoo&city=Sidny
所以我需要重写这样的链接:
www.myweb.com/1285/Rober Sakoo
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我是否可以将原始URL重写为我预期的URL?
有人可以帮我理解这段代码吗?
# Remove trailing ?
RewriteCond %{THE_REQUEST} ? HTTP [NC]
RewriteRule .? /%{REQUEST_URI}? [R=301,L]
Run Code Online (Sandbox Code Playgroud)
基本上我有一个网站 www.example.com 正在生成 www.example.com/index.cfm 的链接?我需要它重定向到 www.example.com 以便进行 SEO 复制。我设法删除了index.cfm,但是?仍然留在那里(www.example.com/?)。如果尾部斜杠是最后一个字符,它也会被删除。我在网上找到了这条规则,但我在 apache 中收到“RewriteCond:错误的标志分隔符”警报,但它没有执行任何操作。
我还有一些页面,例如 www.example.com/index.cfm?term=test 用于搜索,所以我只想去掉尾随的问号,而不是当我确实附加了查询时。
错误出现在 RewriteCond 中。我需要帮助了解这种情况以及为什么它不起作用,而不仅仅是它的答案。
以防万一,这里是整个 htaccess:
RewriteEngine On
Rewritebase /
# remove trailing index.cfm
RewriteRule ^index.cfm(\?)?$ / [R=301,L]
# SEF URLs
SetEnv SEF_REQUEST false
RewriteRule ^[a-z\d\-]+/[a-z]\d+/? /index.cfm/$0 [NC,PT,QSA,E=SEF_REQUEST:true]
RequestHeader add SEF-Request %{SEF_REQUEST}e
RewriteCond %{HTTP:SEF_REQUES} ^true$ [NC]
RewriteRule . - [L]
# Remove trailing ?
RewriteCond %{THE_REQUEST} ? HTTP [NC]
RewriteRule .? ^%{REQUEST_URI}? [R=301,L] …Run Code Online (Sandbox Code Playgroud) .htaccess ×2