代码之家  ›  专栏  ›  技术社区  ›  Inderjeet

hteaccess:htaccess显示404错误的漂亮url

  •  0
  • Inderjeet  · 技术社区  · 8 年前

    我是初学者。我想让url变得漂亮。我在谷歌上搜索这个问题,然后我发现我必须使用。htaccess。我尝试了htaccess代码。

    这是我的URL 网站com/项目详细信息。php?住宅/塞雷纳斯/1

    我想让url像 网站com/住宅/塞雷纳斯/1

    我要删除整个 “项目详细信息。php?” htaccess从url中输入的单词。

    这是我的。htaccess代码

    Options +FollowSymLinks
    
    RewriteEngine On 
    
    RewriteBase /basename/ 
    
    
    
    
    
    # external redirect from actual URL to pretty one 
    
    RewriteCond %{THE_REQUEST} /project-details\.php\?([^\s&]+) [NC] 
    
    RewriteRule ^ view/%1? [R=302,L] 
    
    
    
    RewriteCond %{THE_REQUEST} /project-details\?([^\s&]+) [NC] 
    
    RewriteRule ^ view/%1? [R=302,L] 
    
    
    
    
    
    
    
    # internally rewrites /view/ABC123 to project-details.php?ABC123 
    
    RewriteRule ^view/([A-Za-z0-9_@./#&+-]+)$ project-details.php?$1 [L,NC,QSA] 
    
    
    
    
    
    # PHP hiding rule 
    
    RewriteCond %{REQUEST_FILENAME} !-d 
    
    RewriteCond %{REQUEST_FILENAME} !-f 
    
    RewriteCond %{REQUEST_FILENAME}.php -f 
    
    RewriteRule ^(.*)$ $1.php [L] 
    

    以上htaccess代码工作和url重新访问 网站com/view/Residential/The Serenas/1

    如果我删除 看法 从此行开始 RewriteRule ^ view/%1? [R=302,L]

    然后页面转到404错误。如果我不删除视图,那么代码可以工作,但是 看法 在url上显示。 我不想在url上显示任何内容,只删除“project details.php?”这

    1 回复  |  直到 8 年前
        1
  •  1
  •   Ben    8 年前

    此规则用于检查请求uri是否为 /project-details.php 后面跟着任何查询字符串,并将用户重定向到与查询字符串匹配的uri。 %1 是反向引用,在本例中提供对模式分组部分(括号中)的访问 ([^\s&]+) 。例如,如果uri /project-details.php?Residential/The-Serenas/1 请求时,用户将重定向到 /Residential/The-Serenas/1

    RewriteCond %{THE_REQUEST} /project-details\.php\?([^\s&]+) [NC] 
    RewriteRule ^ %1? [R=302,L] 
    

    此规则用于检查用户是否请求现有文件和目录,如果不请求,则在内部重写uri(只有服务器知道目标uri,用户不知道)。例如,如果uri /住宅/塞雷纳斯/1 请求时,服务器将uri重写为 project-details.php?/Residential/The-Serenas/1

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([A-Za-z0-9_@./#&+-]+)$ project-details.php?$1 [L,NC,QSA]