【问题标题】:Pretty url by removing get parameter not working漂亮的 url 通过删除 get 参数不起作用
【发布时间】:2019-08-30 14:40:28
【问题描述】:

我想从 url 中删除 get 参数。例如 普通网址 [https://apkleet.com/apk.php/?app=some_app][1] 我想要的 https://apkleet.com/apk/some_app

我尝试了什么 我成功地从此 htaccess 代码的 url 中删除了 .php 扩展名

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

但我没有成功从 url 中删除 get 参数,这是我迄今为止尝试过的代码

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^apk/(\d+)*$ ./apk.php?app=$1

这是我完整的 htaccess 代码 - 选项 +FollowSymLinks

RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteCond %{HTTP_HOST} ^m\.apkleet\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.m\.apkleet\.com$
RewriteRule ^(.*)$ "https\:\/\/m\.apkleet\.com\/$1" [R=301,L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^apk/(\d+)*$ ./apk.php?app=$1

我在 stackoverflow.com 中尝试了与我的问题相关的每一个答案,但它们似乎对我有用。

【问题讨论】:

    标签: php laravel .htaccess


    【解决方案1】:

    这是我得到的,它在我的系统上工作:

    RewriteEngine on
    RewriteBase /
    
    RewriteRule ^apk/(.+)$ apk.php?app=$1 [L]
    

    所以在您输入的网址栏上: https://apkleet.com/apk/some_app

    它加载: https://apkleet.com/apk.php?app=some_app

    --

    前提是apk.php文件在根目录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      相关资源
      最近更新 更多