用变量将index.php重写为root

时间:2014-12-17 22:07:18

标签: php .htaccess variables get

我正在设置我的htaccess,一切都按照我想要的方式运行:

Options +FollowSymLinks
RewriteEngine on

# redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?mydomain\.com)$ [NC]
RewriteRule .? http://%1%{REQUEST_URI}/ [R=301,L]

#rewrite pages
RewriteRule ^photo/([^/]*)/([^/]*)$ /photo.php?slug=$1 [L]
RewriteRule ^video/([^/]*)/([^/]*)$ /video.php?slug=$1 [L]
RewriteRule ^quote/([^/]*)/([^/]*)$ /quote.php?slug=$1 [L]
RewriteRule ^post/([^/]*)/([^/]*)$ /post.php?slug=$1 [L]
RewriteRule ^author/([^/]*)/([^/]*)$ /author.php?display_name=$1 [L]
RewriteRule ^tag/([^/]*)/([^/]*)$ /tag.php?tag_name=$1 [L]
RewriteRule ^category/([^/]*)/([^/]*)$ /category.php?slug=$1 [L]
RewriteRule ^blog/$ /blog.php [L]
RewriteRule ^videos/$ /videos.php [L]
RewriteRule ^photos/$ /photos.php [L]
RewriteRule ^coming-soon/$ /coming-soon.php [L]
RewriteRule ^404/$ /404.php [L]

#add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*[^/]$ /$0/ [L,R=301]

#error redirect
ErrorDocument 404 /404

我如何进行设置,以便index.php?page=2重定向到mydomain.com/2/

1 个答案:

答案 0 :(得分:1)

您可以使用:

#error redirect
ErrorDocument 404 /404

Options +FollowSymLinks
RewriteEngine on

# redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?mydomain\.com)$ [NC]
RewriteRule .? http://%1%{REQUEST_URI}/ [R=301,L]

#add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*[^/]$ /$0/ [L,R=301]

#rewrite pages
RewriteRule ^photo/([^/]*)/([^/]*)$ /photo.php?slug=$1 [L]
RewriteRule ^video/([^/]*)/([^/]*)$ /video.php?slug=$1 [L]
RewriteRule ^quote/([^/]*)/([^/]*)$ /quote.php?slug=$1 [L]
RewriteRule ^post/([^/]*)/([^/]*)$ /post.php?slug=$1 [L]
RewriteRule ^author/([^/]*)/([^/]*)$ /author.php?display_name=$1 [L]
RewriteRule ^tag/([^/]*)/([^/]*)$ /tag.php?tag_name=$1 [L]
RewriteRule ^category/([^/]*)/([^/]*)$ /category.php?slug=$1 [L]
RewriteRule ^blog/$ /blog.php [L]
RewriteRule ^videos/$ /videos.php [L]
RewriteRule ^photos/$ /photos.php [L]
RewriteRule ^coming-soon/$ /coming-soon.php [L]
RewriteRule ^404/$ /404.php [L]

RewriteRule ^(\d+)/?$ /index.php?page=$1 [L,QSA]

始终在内部规则之前保留重定向规则,并在底部保留catch-all类型规则。