重写规则html / php

时间:2015-03-04 12:45:50

标签: php html .htaccess rewrite

我目前有这个.htaccess代码来删除.php / .html扩展名。

# Apache Rewrite Rules
 <IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteBase /

# Add trailing slash to url
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
  RewriteRule ^(.*)$ $1/ [R=301,L]

# Remove .php-extension from url
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME}\.php -f
  RewriteRule ^([^\.]+)/$ $1.php 

  # Remove .html-extension from url
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME}\.html -f
  RewriteRule ^([^\.]+)/$ $1.html 


# End of Apache Rewrite Rules
 </IfModule>

我正在尝试将poll.php页面设为/ poll / 123123 /&lt; - (6位数ID)来自poll.php?poll = 123123。

我尝试添加

RewriteRule ^[A-Za-z0-9-]+/([A-Za-z0-9-]+)/?$ polls.php?poll=$1 [NC,L]

但它然后尝试检测dashboard.php而不是dashboard.html。

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

如果你正在寻找一个特殊的URL并且只有数字更改,则不需要通配符

 RewriteRule ^poll/(\d+)/$ polls.php?poll=$1

或更好地获得总是6位

RewriteRule ^poll/([0-9]{6})/$ polls.php?poll=$1

应该这样做