【问题标题】:htaccess to check if query string exist otherwise use previous rulehtaccess 检查查询字符串是否存在,否则使用先前的规则
【发布时间】:2016-06-24 10:17:46
【问题描述】:

我正在尝试转换此网址

http://127.0.0.1/kurumsal/index.php?sayfa=referans&page=2

到这里

http://127.0.0.1/kurumsal/index/sayfa/referans/page/2/

但不是每个页面都有分页,它指的是 page=2 查询字符串。如果“页面”查询字符串不存在,我只想使用查询字符串的第一部分。

所以它会是http://127.0.0.1/kurumsal/index/sayfa/referans/ 没有分页查询字符串。

学习了一些教程但没有运气,这是我的 htaccess

RewriteEngine On
RewriteCond %{QUERY_STRING} !(^|&)page=($|&)
RewriteRule ^sayfa/([^/]*)/([^/]*)/$ /kurumsal/index.php?sayfa=$1&page=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^sayfa/([^/]*)/$ /kurumsal/index.php?sayfa=$1 [L]

【问题讨论】:

  • 请指定htaccess文件的放置位置?
  • @WEBDEVPR 项目根文件夹,即 /kurumsal/

标签: apache .htaccess mod-rewrite


【解决方案1】:

尝试使用此规则:

RewriteEngine On
RewriteRule ^kurumsal/index/sayfa/([^/]*)/page/([^/]*)$ /kurumsal/index.php?sayfa=$1&page=$2 [L]

【讨论】:

    【解决方案2】:

    您可以在root/.htaccess 中使用此规则:

    RewriteEngine on
    
    RewriteCond %{THE_REQUEST} /kurumsal/index\.php\?sayfa=([^\&]+)(?:&page=)?(.*?)\sHTTP [NC]
    RewriteRule ^ /kurumsal/index/sayfa/%1/%2? [L,R]
    RewriteRule ^(?:kurumsal/)?index/sayfa/([^/]+)/?(.*?)/?$ /kurumsal/index.php?sayfa=$1&page=$2 [L]
    

    【讨论】:

      【解决方案3】:

      试试这个

      RewriteEngine On
      RewriteBase /kurumsal/
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^index/sayfa/([^/]*)/page/([^/]*)/$ /kurumsal/index.php?sayfa=$1&page=$2 [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^index/sayfa/([^/]*)/$ /kurumsal/index.php?sayfa=$1 [L]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        • 2020-09-09
        • 2011-12-19
        • 1970-01-01
        相关资源
        最近更新 更多