代码之家  ›  专栏  ›  技术社区  ›  GROVER. sms

htaccess重写发送。参数表末尾的php

  •  0
  • GROVER. sms  · 技术社区  · 6 年前

    我创造了自己的 .htaccess 文件,用于更改我的网站的用户名URL(以及删除 .php 扩展自 全部的 URL)。

    目的是为了 统一资源定位地址 要从以下内容转换:

    www.example。1/个人资料。php?id=用户名

    www.example。1/用户名

    我知道这是一个常见的问题 “用户名”htaccess重写 然而,我找到的答案都没有帮助我解决问题。

    这是我的 满的 .htaccess :

    Options -Indexes
    Options +FollowSymLinks
    
    RewriteEngine On
    
    # only allow rewriting to paths that dont exist
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{SCRIPT_FILENAME} !-f
    
    # redirect example.one to www.*
    RewriteCond %{HTTP_HOST} ^example\.one$ [NC]
    RewriteRule ^(.*)$ http://www.example.one [R=301,L]
    
    # no php extension
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
    
    # example.one/username
    RewriteRule ^/([a-zA-Z_\-0-9]+)*$ ./profile.php?id=$1
    

    干杯

    1 回复  |  直到 6 年前
        1
  •  1
  •   anubhava    6 年前

    您可以在站点根目录中使用这些规则。htaccess:

    Options +FollowSymLinks -Indexes
    
    RewriteEngine On
    
    # redirect example.one to www.*
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    # external redirect from actual URL to pretty one
    RewriteCond %{THE_REQUEST} /profile\.php\?id=([\w-]+) [NC]
    RewriteRule ^ /%1? [R=301,L]
    
    # no php extension
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.+?)/?$ $1.php [L]
    
    # example.one/username
    # only allow rewriting to paths that dont exist
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([\w-]+)/?$ profile.php?id=$1 [L,QSA]