在htaccess中重写url不太确定如何做到这一点

时间:2012-05-18 22:24:50

标签: .htaccess generics url-rewriting

嘿伙计们我正在尝试转换看起来像这样的网址

example.com/sometype/author-name/sort-date 要么 example.com/sometype/author-name/sort-date/something-value /

只需要一个通用的解决方案。

我对这个很陌生,在正则表达式上有点弱。 所以我能写的是识别

sometype。这时候/作者名/排序日期/

sometype。这时候/作者名/排序日期/东西值/

/([a-zA-Z0-9] +)/([a-zA-Z0-9] +) - ([a-zA-Z0-9] +)

我想将其重写为此格式

example.come数据= { “PAR1”: “sometype。这时候”, “作者”: “姓名”, “排序”: “日期”, “东西”: “谷”}

example.come数据= { “PAR1”: “sometype。这时候”, “作者”: “姓名”, “排序”: “日期”}

1 个答案:

答案 0 :(得分:0)

首先明白你所问的是非常不寻常的,对于mod_rewrite来说非常棘手。它不仅需要基于递归的代码,而且这些代码也不会非常易读。

使用该注意事项通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/([^/]+)(.*?)/?$ $1\",\"$2$3 [L]

RewriteRule ^([^-]+)-([^,]+)(.*)$ $1\":\"$2$3 [L]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ /?data={\"part1\":\"$1\"} [L]