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.
-
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.
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.
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>
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/
- You must be logged in to reply to this topic.