我正在尝试使用 .htaccess 重写和重定向来完成一些任务,但是在让它们很好地协同工作时遇到了问题。我正在努力完成三件事-
- http://www.domain.com/directory/index.php?p=page形式的 URL需要重写/重定向到http://www.domain.com/directory/page
- 任何非 WWW 请求都应重定向到 www。版本
- 只有某些页面应该被重定向并在 https 下提供,而其他所有页面都被重定向(如果需要)并在 http 下提供
这是我目前所拥有的,它正在处理上面的 1 和 2。#3被证明是挑战:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
#Rewrite for dynamic subpages (/directory/index.php?sitepage=page)
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ $1/index.php?sitepage=$2 [L]
#Root level pages remove php extension
RewriteRule ^([a-zA-Z0-9_-]+)$ $1.php [L]
任何帮助是极大的赞赏!