rewrite help needed.
Ian Hobson
ian at ianhobson.co.uk
Wed Aug 26 17:35:17 MSD 2009
Igor Sysoev wrote:
> On Wed, Aug 26, 2009 at 01:57:15PM +0100, Ian Hobson wrote:
>
>
>> Hi All
>>
>> I am trying to set up a wordpress site using nginx, and I am running
>> into trouble. Started with the page at
>> http://robertbasic.com/blog/wordpress-as-cms-tutorial/ but things are
>> not working. I think that my translation
>> oh an .htaccess file is wrong.
>>
>> This is the Apache .htaccess file I wish to replace..
>>
>> <IfModule mod_rewrite.c>
>> RewriteEngine On
>> RewriteBase /blog/
>> RewriteCond %{REQUEST_FILENAME} !-f
>> RewriteCond %{REQUEST_FILENAME} !-d
>> RewriteRule . /blog/index.php [L]
>> </IfModule>
>>
>> This is the file in sites-available. / gives an empty reply, /blog gives
>> a 404, and index.php?p=1 gives a url of
>> http://www.domain.com/blog/http:/www.domain.com/blog/hello-world/ and
>> the page contains "No input file specified".
>>
>> # Statements for domain.com
>> server {
>> listen 80;
>> #
>> server_name domain.com www.domain.com ;
>> root /var/www/domain.com/htdocs;
>> access_log /var/www/domain.com/access.log combined;
>> index index.php index.html index.htm;
>> #
>> # redirect server error pages to the static page /50x.html
>> #
>> error_page 500 502 503 504 /50x.html;
>> # serve static files
>> if (-f $request_filename) {
>> # expires 30d;
>> break;
>> }
>> # send all non-existing file or directory requests to index.php
>> if (!-e $request_filename) {
>> rewrite ^/blog/(.+)$ index.php?q=$1 last;
>> }
>> # password protect /usage
>> location ^~ /usage/ {
>> auth_basic "Please login";
>> auth_basic_user_file /var/www/domain.com/passwords;
>> }
>> # all .php requests to fastcgi using uri.
>> location ~ \.php$ {
>> include /etc/nginx/fastcgi_params;
>> fastcgi_pass 127.0.0.1:9000;
>> }
>> }
>>
>> I suspect that the solution is really simple, but I can't see it.
>> Help much appreciated.
>>
>
> location /blog/ {
> try_files $uri $uri/ /index.php;
> }
>
> location ~ \.php$ {
> include /etc/nginx/fastcgi_params;
> fastcgi_pass 127.0.0.1:9000;
> }
>
>
Thanks Igor for your super fast response.
I should have mentioned that I'm on ubuntu and therefore nginx 0.5.33
! No try-files.
So I must either compile nginx on (unfamilar) ubuntu, or work round the
missing try-files.
Regards
Ian
More information about the nginx
mailing list