Skip to:
Content
Pages
Categories
Search
Top
Bottom

Pretty Permalinks on Debian VPS Server

  • I just moved my forum from cpanel-shared hosting to debian vps server- directadmin.

    The only problem I faced was permalinks on my forum.

    I am using wordpress & bbpress together, and wordpress had no problem with permalinks.

    I tried two options for permalinks to work;

    1) option multiviews,

    2) bb-admin/rewrite-rules.php

    I use .htaccess redirects on my wordpress and had no problem with it. I dont know what to change on my vps, or what to try on my vps, and all of the urls saved on google are not working for now.

    I dont know much about debian or vps server, this is my first month. I have root access.

    Software Versions

    Wordpress 2.2.2

    Bbpress 0.8.2.1

    Server Software Versions

    Apache 2.2.8

    MySQL 4.1.10

    DirectAdmin 1.31.2

    Thanks for reading.

Viewing 8 replies - 1 through 8 (of 8 total)

  • _ck_
    Participant

    @_ck_

    Do you possibly have rewrite rules in a higher level directory that are interfering with the bbpress rules?

    When you say they don’t work, did you get a specific error?

    It’s really entirely up to apache and the httpd.conf settings, the host OS should not matter too much…

    Your version of bbPress is a big outdated (though I run 0.8.2.1 elsewhere myself) but it should still work fine for permalinks.

    _ck_ thanks for your reply,

    I contacted to technical service, and they said they opened multiview option. But it did not work. And they gave me virtual host configuration:

    The error I saw is, ” page not found error”

    I use wordpress in my root directory, and I use bbpress in subfolder named as forum. I think wordpress’ .htaccess file do not interfere with the one for forums.

    I also asked for httpd.conf settings, but the technical stuff said, directadmin uses very clean httpd.conf settings, and their virtual host setup is nearly the same thing, so they gave virtual host settings:

    <Directory /home/abc.com/public>

    Options +Includes -Indexes +MultiViews

    </Directory>

    Technical stuff also, did not figure out why this problem occurs. And he also said multiviews option could reason some security problems.


    _ck_
    Participant

    @_ck_

    Don’t use multiviews, it’s slower and unpredictable.

    Always try to use real mod_rewrite rules when possible instead.

    I had godaddy hosting when I was setting up this forum. And it did not worked for permalinks. I moved to another shared hosting, and it worked. Now my website gets more traffic and I moved to a vps. But although I can change every setting on my vps, I dont know what to do. And technical stuff also did not know anything about the problem.

    I used mod_rewrite rules in my previous hosting, and I use it for now, but it does not work. Forum is opening, but links are not working.

    On godaddy, the mod_rewrite was also working for wordpress, and it also works for my vps. I think bbpress has some problem with those rewrite rules. Do I have to move back to shared hosting, which I dont want to do so, after I saw how fast my website is on a vps.


    _ck_
    Participant

    @_ck_

    Let’s put it this way – bbPress is running with slugs and rewrite rules on literally thousands of servers, so the problem is likely your setup, not necessarily bbPress.

    mod_rewrite should be virtually 100% internal to apache and not really depend on the OS/filesystem underneath but there’s always a chance for something to be interfering.

    If you are using the bb-admin/rewrite-rules.php in your htaccess and you have slugs turned on and it doesn’t work, then I would bet that you have another mod_rewrite rule somewhere that is conflicting, either in the same htaccess file or in a directory above it. Do NOT use multiviews. I cannot help you if you are using multiviews.

    I need much more information, like your htaccess file, and any htaccess file in directories above your forum. Is bbpress running in /forums/ or in the webroot (ie. / )

    Also are you running wordpress at the exact same time as bbpress? I don’t mean standalone integration, I mean loading within each other. Because I am not sure how that would be handled and I never recommend it.

    thanks for your reply, I am sending my httpd.conf, and htaccess files for wordpress and bbpress. Im also using gallery2 which is located at /somegalleryfolder. I use a plugin to integrate it with wordpress. But it has no problem, before or after I moved to the new vps. Bbpress is located at /forum folder. And its htaccess is contains only the code generated by bb-admin/rewrite-rules.php

    I found my httpd.conf file, I dont know whether there is a security issue to put it here or not. But I hope it give you some idea about what could be problem:

    #

    # This is the main Apache HTTP server configuration file. It contains the

    # configuration directives that give the server its instructions.

    # See <URL:http://httpd.apache.org/docs/2.2> for detailed information.

    # In particular, see

    # <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>

    # for a discussion of each configuration directive.

    #

    # Do NOT simply read the instructions in here without understanding

    # what they do. They're here only as hints or reminders. If you are unsure

    # consult the online docs. You have been warned.

    ServerRoot “/etc/httpd”

    Listen 80

    #LoadModule php4_module /usr/lib/apache/libphp4.so

    LoadModule php5_module /usr/lib/apache/libphp5.so

    #LoadModule suphp_module /usr/lib/apache/mod_suphp.so

    LoadModule php5_module /usr/lib/apache/libphp5.so

    User apache

    Group apache

    ServerAdmin admin@localhost

    DocumentRoot “/var/www/html”

    <Directory /home/*>

    AllowOverride All

    Options +MultiViews -Indexes +FollowSymlinks +IncludesNoExec +Includes

    <Limit GET POST OPTIONS PROPFIND>

    Order allow,deny

    Allow from all

    </Limit>

    <LimitExcept GET POST OPTIONS PROPFIND>

    Order deny,allow

    Deny from all

    </LimitExcept>

    </Directory>

    <Directory />

    Options All

    AllowOverride All

    </Directory>

    <Directory “/var/www/html”>

    Options +Indexes +FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

    <IfModule mod_suphp.c>

    suPHP_Engine On

    suPHP_UserGroup webapps webapps

    </IfModule>

    </Directory>

    <IfModule dir_module>

    DirectoryIndex index.html index.htm index.shtml index.php index.php5 index.php4 index.php3 index.phtml index.cgi

    </IfModule>

    <FilesMatch “^.ht”>

    Order allow,deny

    Deny from all

    Satisfy All

    </FilesMatch>

    ErrorLog /var/log/httpd/error_log

    LogLevel warn

    <IfModule log_config_module>

    #replace %b with %O for more accurate logging

    <IfModule mod_logio.c>

    LogFormat “%h %l %u %t “%r” %>s %O “%{Referer}i” “%{User-Agent}i”” combined

    LogFormat “%h %l %u %t “%r” %>s %O” common

    LogFormat “%O” bytes

    LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i” %I %O” combinedio

    </IfModule>

    CustomLog /var/log/httpd/access_log common

    </IfModule>

    <IfModule alias_module>

    # Include some DirectAdmin alias

    Include conf/extra/httpd-alias.conf

    </IfModule>

    <Directory “/var/www/cgi-bin”>

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

    </Directory>

    DefaultType text/plain

    <IfModule mime_module>

    TypesConfig conf/mime.types

    AddType application/x-gzip .tgz

    AddEncoding x-compress .Z

    AddEncoding x-gzip .gz .tgz

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

    AddHandler cgi-script .cgi

    AddHandler type-map var

    AddType text/html .shtml

    AddOutputFilter INCLUDES .shtml

    AddType video/x-ms-asf .avi

    AddType video/mpeg .mpg

    AddType video/mpeg .mpeg

    AddType video/quicktime .mov

    AddType video/x-ms-wmv .wmv

    </IfModule>

    #EnableMMAP off

    #EnableSendfile off

    #######################################################################################

    # Do not change anything in included files, because they are rewritten by DirectAdmin #

    #######################################################################################

    # This is needed for PHP

    Include conf/extra/httpd-php-handlers.conf

    # Server-pool management (MPM specific)

    Include conf/extra/httpd-mpm.conf

    # Multi-language error messages

    Include conf/extra/httpd-multilang-errordoc.conf

    # Fancy directory listings

    Include conf/extra/httpd-autoindex.conf

    # Language settings

    Include conf/extra/httpd-languages.conf

    # User home directories

    #Include conf/extra/httpd-userdir.conf

    # Real-time info on requests and configuration

    Include conf/extra/httpd-info.conf

    # Virtual hosts

    Include conf/extra/httpd-vhosts.conf

    # Local access to the Apache HTTP Server Manual

    #Include conf/extra/httpd-manual.conf

    # Distributed authoring and versioning (WebDAV)

    Include conf/extra/httpd-dav.conf

    # Various default settings

    Include conf/extra/httpd-default.conf

    # Secure (SSL/TLS) connections

    Include conf/extra/httpd-ssl.conf

    # Deflate module settings

    Include conf/extra/httpd-deflate.conf

    # All the DirectAdmin vhosts

    Include conf/extra/directadmin-vhosts.conf

    # All suPHP directives

    Include conf/extra/httpd-suphp.conf

    # All the other includes needed by the custombuild script

    Include conf/extra/httpd-includes.conf

    #######################################################################################

    # End of included files that are rewritten by DirectAdmin #

    #######################################################################################

    <IfModule ssl_module>

    SSLRandomSeed startup builtin

    SSLRandomSeed connect builtin

    </IfModule>

    and this is my wordpress .htaccess file, it is in root folder for the domain

    php_value upload_max_filesize "50M"

    # BEGIN WordPress

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    </IfModule>

    # END WordPress

    # BEGIN Url Rewrite section

    # (Automatically generated. Do not edit this section)

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} -f [OR]

    RewriteCond %{REQUEST_FILENAME} -d [OR]

    RewriteCond %{REQUEST_FILENAME} gallery_remote2.php

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . – [L]

    RewriteCond %{QUERY_STRING} view=core.DownloadItem

    RewriteCond %{HTTP:Referer} !^[a-zA-Z0-9+.-]+://www.domain.com/ [NC]

    RewriteCond %{HTTP:Referer} !^$

    RewriteRule . /wp-gallery2.php [F,L]

    RewriteCond %{QUERY_STRING} g2_view=core.DownloadItem

    RewriteCond %{QUERY_STRING} g2_itemId=([0-9]+)

    RewriteCond %{HTTP:Referer} !^[a-zA-Z0-9+.-]+://www.domain.com/ [NC]

    RewriteCond %{HTTP:Referer} !^$

    RewriteRule . /galery/main.php?g2_view=rewrite.DownloadItem&g2_itemId=%1 [L]

    RewriteCond %{THE_REQUEST} /sitemap(?.| .)

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . /wp-gallery2.php?g2_view=sitemap.Sitemap [QSA,L]

    RewriteCond %{THE_REQUEST} /tags(?.| .)

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . /wp-gallery2.php?g2_view=tags.TagCloud [QSA,L]

    RewriteCond %{THE_REQUEST} /admin/(?.| .)

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . /wp-gallery2.php?g2_view=core.SiteAdmin [QSA,L]

    RewriteCond %{THE_REQUEST} /comments/add/([0-9]+).html(?.| .)

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . /wp-gallery2.php?g2_view=comment.AddComment&g2_itemId=%1 [QSA,L]

    RewriteCond %{THE_REQUEST} /comments/([0-9]+).html(?.| .)

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . /wp-gallery2.php?g2_view=comment.ShowAllComments&g2_itemId=%1 [QSA,L]

    RewriteCond %{THE_REQUEST} /([^?]+)/slideshow.html(?.| .)

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . /wp-gallery2.php?g2_view=slideshow.Slideshow&g2_path=%1 [QSA,L]

    RewriteCond %{THE_REQUEST} /photo/([^?]+)(?.| .)

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . /wp-gallery2.php?g2_path=%1 [QSA,L]

    RewriteCond %{THE_REQUEST} /([^?/]+)(?.| .)

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . /wp-gallery2.php?g2_view=tags.VirtualAlbum&g2_tagName=%1 [QSA,L]

    RewriteCond %{THE_REQUEST} /([^?]+)(?.| .)

    RewriteCond %{REQUEST_URI} !/wp-gallery2.php$

    RewriteRule . /wp-gallery2.php?g2_controller=permalinks.Redirect&g2_filename=%1 [QSA,L]

    </IfModule>

    # END Url Rewrite section

    #

    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^domain.com$ [NC]

    RewriteRule .* http://www.domain.com/ [L,R=301]

    RewriteCond %{THE_REQUEST} ?(ref=.*)? HTTP [NC]

    RewriteRule .? http://www.domain.com%{REQUEST_URI}? [R=301,L]

    RewriteCond %{THE_REQUEST} ?(referer=.*)? HTTP [NC]

    RewriteRule .? http://www.domain.com%{REQUEST_URI}? [R=301,L]

    Redirect /x/ http://www.domain.com/y/

    Redirect /a/ http://www.domain.com/b/

    and this is bbpress .htaccess located on /forum folder, and my bbpress is also located on /forum. And I dont call wordpress from bbpress and I dont call bbpress from wordpress. I use integration method expressed in faq section of bbpress documents. And my setup was working before I moved to the new vps.

    <ifmodule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /forum/

    RewriteRule ^forum/([0-9]+)/page/([0-9]+)$ /forum/forum.php?id=$1&page=$2 [L,QSA]

    RewriteRule ^forum/([0-9]+)$ /forum/forum.php?id=$1 [L,QSA]

    RewriteRule ^topic/([0-9]+)/page/([0-9]+)$ /forum/topic.php?id=$1&page=$2 [L,QSA]

    RewriteRule ^topic/([0-9]+)$ /forum/topic.php?id=$1 [L,QSA]

    RewriteRule ^tags/(.+)/page/([0-9]+)$ /forum/tags.php?tag=$1&page=$2 [L,QSA]

    RewriteRule ^tags/(.+)/?$ /forum/tags.php?tag=$1 [L,QSA]

    RewriteRule ^tags/?$ /forum/tags.php [L,QSA]

    RewriteRule ^profile/([0-9]+)/page/([0-9]+)$ /forum/profile.php?id=$1&page=$2 [L,QSA]

    RewriteRule ^profile/([0-9]+)/([a-z]+)$ /forum/profile.php?id=$1&tab=$2 [L,QSA]

    RewriteRule ^profile/([0-9]+)/([a-z]+)/page/([0-9]+)$ /forum/profile.php?id=$1&tab=$2&page=$3 [L,QSA]

    RewriteRule ^profile/([0-9]+)$ /forum/profile.php?id=$1 [L,QSA]

    RewriteRule ^view/([a-z-]+)/page/([0-9]+)$ /forum/view.php?view=$1&page=$2 [L,QSA]

    RewriteRule ^view/([a-z-]+)$ /forum/view.php?view=$1 [L,QSA]

    RewriteRule ^rss/$ /forum/rss.php [L,QSA]

    RewriteRule ^rss/forum/([0-9]+)$ /forum/rss.php?forum=$1 [L,QSA]

    RewriteRule ^rss/topic/([0-9]+)$ /forum/rss.php?topic=$1 [L,QSA]

    RewriteRule ^rss/tags/([a-z]+)$ /forum/rss.php?tag=$1 [L,QSA]

    RewriteRule ^rss/profile/([0-9]+)$ /forum/rss.php?profile=$1 [L,QSA]

    </ifmodule>


    _ck_
    Participant

    @_ck_

    Your bbpress htaccess in /forum/ looks fine EXCEPT for what I hope is just a manual typo

    <ifmodule mod_rewrite.c>

    case matters in htaccess if I recall correctly

    It should be

    <IfModule mod_rewrite.c>

    note the IfModule

    (eta: the apache manual does say “Directives in the configuration files are case-insensitive” but give it a shot anyway – bbPress doesn’t generate it like that so I am not sure why it’s lower case in your setup?)

    If changing that does nothing, the htaccess in the webroot that runs wordpress is also bit messy and my bet would be it’s got rules conflicting with bbpress’s

    Is your site active or can you temporarily rename/delete the htaccess in the webroot and see if suddenly the bbpress slugs start working correctly? MAKE SURE YOU BACKUP THE FILE FIRST.

    ps. next time use something like pastebin.com for that long of a copy/paste and just post the link

    I changes ifmodule to IfModule but it did not fixed the problem. And I dont know why it is lowercase for my .htaccess file. It may reason from a previous bbpress rewrite-rules.php or not. I dont know, and I also could not figure out that difference.

    I also tried to rename wordpress’ .htaccess file to check whether it creates a problem or not. When I do that, I get my website working for root and all wordpress pages are not reachable. Forum is the same. So I get an idea, is there any problem with the server or apache for reading the .htaccess file located on /forum folder. Is there any option on apache, or somewhere on the server to read or not to read the .htaccess files on subfolders?

    And I contacted to technical stuff of hosting company, and he asked for the apache version where I was using my site with no problem. It was Apache 1.3 , and this vps has Apache 2. So he said he will try it with apache 1.3 to check whether it is working or not.

    UPDATE: I added a rewrite rule to .htaccess file on /forum folder to check whether it works for a simple redirect or not. And it worked for:

    Redirect /forum/a/ http://www.domain.com/b/

Viewing 8 replies - 1 through 8 (of 8 total)

You must be logged in to reply to this topic.