【问题标题】:htaccess rewrite only when there is a queryhtaccess 仅在有查询时重写
【发布时间】:2013-10-14 10:29:07
【问题描述】:

我在为朋友创建一个小网站时遇到重写规则的问题,该网站为他的员工提供基本的个人资料页面,我正在寻找一种将链接创建为 facebook 样式链接的方法。

我现在有

RewriteRule ^([^/]*)$ /staff_profile.php?staff=$1 [L] 

它将所有页面重定向到staff_profile.php,只有当链接输入为http://example.com/j.smith时我才需要它重定向,这将重定向到john smiths页面,

但是当访问http://example.com/WhatEverPage.php 时,我需要它来显示该页面而不是staff_profile.php

【问题讨论】:

  • 这取决于WhatEverPage.php 是否是一个真实文件,或者您是否将另一个请求重定向到另一个.php 文件。如果WhatEverPage.php 存在,则查看anubhava 的答案,否则您可以查看RewriteCond 或按照它们应该匹配的顺序创建多个RewriteRules。

标签: html regex apache .htaccess mod-rewrite


【解决方案1】:

你可以使用:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /staff_profile.php?staff=$1 [L,QSA]

如果请求有效的文件/目录,这将跳过RewriteRule 以上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 2011-04-06
    • 1970-01-01
    相关资源
    最近更新 更多