有没有办法通过htaccess通过删除URL的parat来更改URL以清除URL?
我的所有URL格式是这样的:有没有办法通过htaccess通过删除URL的parat来更改URL以清除URL?
http://example.com/category?format=feed
http://example.com/category/sub_category/?format=feed
例如:http://example.com/computer/cpu/?format=feed
是否有通过htaccess的办法改变的热门网址这些:
http://example.com/category/feed
http://example.com/category/sub_category/feed
这些规则应该同时满足这两个要求。但只要正常的URL不会更改,并允许您更改类别和子库,并且format
始终是查询字符串中的关键字。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/(.+)/(.+)$ /$1/$2/?format=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/(.+)$ /$1/?format=$2 [L]
然后你应该可以使用这些URL类型。
http://example.com/category/feed
http://example.com/category/sub_category/feed
感谢您的回答......干净的URL只能在内部更改......是吗?但没有发生! – user3307827
是的,像这个'http:// example.com/category/feed'干净的URL是地址栏中应该显示的内容。如果你使用上面的示例代码,它应该只在内部重定向。这个'[L]'告诉它在匹配规则时停止处理。确保这是你在那里的一切。不要使用'R'。 –
下应该达到你在找什么:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^format=(.*)$
RewriteRule ^(.*)/(.*)/$ /$1/$2/%1? [L,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^format=(.*)$
RewriteRule ^(.*)$ /$1/%1? [L,R]
以上会变成:
http://example.com/category?format=feed
到http://example.com/category/feed
和
http://example.com/category/sub_category/?format=feed
到http://example.com/category/sub_category/feed
是的,有一种方法。查看右侧的长列表以获取更多信息 - > – PeeHaa