首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个.php页面的变量重写

多个.php页面的变量重写
EN

Stack Overflow用户
提问于 2015-02-16 14:39:59
回答 1查看 35关注 0票数 0

我试图访问我的两个页面,用.htaccess重写它们的urls。

我试图访问的第一页:

http://api.aotikbot.tv/polls.php?username=aotik

第二页我试图访问:

http://api.aotikbot.tv/getpoll.php?poll=917529

我当前的.htaccess代码:

代码语言:javascript
复制
# 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 ^[A-Za-z0-9-]+/([A-Za-z0-9-]+)/?$ polls.php?username=$1 [NC,L]
  RewriteRule ^[A-Za-z0-9-]+/([A-Za-z0-9-]+)/?$ getpoll.php?poll=$1 [NC,L]

  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>

第一页工作为/polls/用户名,但第二页不读取轮询值,我认为重定向到polls.php。

有人能解释我做错了什么吗?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-16 15:08:55

代码语言:javascript
复制
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^[A-Za-z0-9-]+/([0-9-]+)/?$ getpoll.php?poll=$1 [NC,L]
RewriteRule ^[A-Za-z0-9-]+/([A-Za-z0-9-]+)/?$ polls.php?username=$1 [NC,L]

在这里,我已经交换了您的两个规则,所以我们首先检查ID(对于getpoll -注意我是如何从表达式中删除字母的)。如果我们没有进行ID检查(即,段中有字母),那么它将重写polls

更新:

按照arco444,如果用户名是一个数字,这是行不通的。这是一个更具体的解决方案:

代码语言:javascript
复制
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^getpoll/([0-9-]+)/?$ getpoll.php?poll=$1 [NC,L]
RewriteRule ^polls/([A-Za-z0-9-]+)/?$ polls.php?username=$1 [NC,L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28543833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档