首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htaccess人类可读

htaccess人类可读
EN

Stack Overflow用户
提问于 2013-03-15 18:28:25
回答 2查看 388关注 0票数 1

我有一个网站,它已经定义了使网址更好的htaccess

代码语言:javascript
复制
DirectoryIndex index.php
RewriteEngine On
RewriteBase /

Options -indexes

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) index.php

一切正常(根文件夹中有cms )。

现在,我想在root目录中创建一个文件夹,并为其创建另一个规则:

代码语言:javascript
复制
DirectoryIndex index.php
RewriteEngine On
RewriteBase /

Options -indexes

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !tip [NC]

RewriteRule (.*) index.php [NC]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^tip/([^/]+)/? /tip/?id=$1

所以我想重定向来自../tip/N的所有内容:.../tip/?id=N -> url

它似乎工作得很好,id被传递,数据被加载,但是。所有的urls在站点内部都是错误的(javascript,css)。他们没有上膛。

查看:http://wincode.org/tip/3

例如,代码:<script defer src="js/filtrify.js"></script> produces:http://wincode.org/tip/js/filtrify.js,但如果您尝试在另一个选项卡中加载它,我想它会将js/filtrify.js作为id参数传递。如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-15 18:45:14

A.在$DOCUMENT_ROOT/ .htaccess中将.htaccess代码更改为:

代码语言:javascript
复制
DirectoryIndex index.php
RewriteEngine On
RewriteBase /

Options -indexes

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule (?!^tip(/.*|)$)^.*$ /index.php [L,NC]

B.将$DOCUMENT_ROOT/tip/ .htaccess中的.htaccess代码更改为:

代码语言:javascript
复制
DirectoryIndex index.php
RewriteEngine On
RewriteBase /tip

Options -indexes

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([^/]+)/?$ /tip/?id=$1 [L,QSA]
票数 3
EN

Stack Overflow用户

发布于 2015-06-24 22:22:59

我只是稍微改进了一个anubhava回复,这个是基于根文件夹的例子,但是你可以使用相同的方法来处理你需要的其他目录。

代码语言:javascript
复制
DirectoryIndex index.php
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

  Options -indexes

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteRule (?!^tip(/.*|)$)^.*$ /index.php [L,NC]
</IfModule>

<IfModule !mod_rewrite.c>
    # Mod_rewrite not installed, redirect all 404 errors to index.php.
    ErrorDocument 404 index.php
</IfModule>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15429954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档